|
Как получить новый объект из привязанного ContentControl?
|
|||
---|---|---|---|
#18+
Есть листбокс с объектами. К нему прибайндин ContentControl с шаблоном данных. Шаблон всё отображает по клику на листбоксе. Но вот как добавить новый объект а этому листбоксу? Ну т. е. я заполняю поля в шаблоне, а потом жму кнопку "Добавить к списку новый объект" и коллекция листбокса пополняется новым объектом. Дело в том, что считать данные с контролов из шаблона данных нельзя - у них хоть и есть имена, но в коде пишется, что таких имён не существует. Есть ли автоматизированный способ создавать такие новые объекты (байндингом же)? А то как-то получается, что показывать может сам через байндинги, а создать новый и закинуть в коллекцию - надо в коде считывать значения каждого контрола из шаблона данных. Да они ещё и не считываются. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 13:26 |
|
Как получить новый объект из привязанного ContentControl?
|
|||
---|---|---|---|
#18+
Ну т. е. отображать такая конструкция данные может автоматически (т. е. сама разбрасывать данные по контролам через байндинги). Изменять уже существующие (через ObservableCollection) может тоже автоматически. А как теперь автоматически создавать новый объект? Т. е. данные ввести самому, а по кнопке чтобы этот объект из этой конструкции добавлялся к коллекции. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 13:49 |
|
Как получить новый объект из привязанного ContentControl?
|
|||
---|---|---|---|
#18+
user7320Дело в том, что считать данные с контролов из шаблона данных нельзя - у них хоть и есть имена, но в коде пишется, что таких имён не существует. Вот разметка Код: html 1. 2. 3. 4. 5.
В коде пишет, что DetailsContentControl есть, а IdTextBox - нету. Почему так? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 15:58 |
|
Как получить новый объект из привязанного ContentControl?
|
|||
---|---|---|---|
#18+
user7320, если хотите реализовать универсальный метод добавления новой записи, то на в голову приходит только рефлексия т.к. не помню что за коллекция может реализовать добавление через метод Add без атрибутов. если нужно просто реализовать в "одном месте" то ничего не мешает просто добавлять уже известную сущность с определенными значениями. касательно вопроса "почему я не могу обратиться к элементам вложенных в DataTemplate" - это ограничение самого DataTemplate, можете почитать в гугле почему так происходит, но достучаться до элементов возможность все же есть, вот выдержка помощника (который нашел на просторах интернета, к сожалению первоисточник найти не удалось), вот пример использования (смотреть метод GenerateFields). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 17:43 |
|
Как получить новый объект из привязанного ContentControl?
|
|||
---|---|---|---|
#18+
Спасибо, Утка. Насчёт добавления уже придумал просто добавлять новый объект с умолчальными значениями для свойств в список и сразу давать пользователю возможность редактировать эти свойства. Т. е. если раньше во всяких Вин Формс и WPF, сделанных по традиции Вин Формс, был сценарий добавления нового объекта такой: показать окно с формой добавления с пустыми полями, добавить заполненный объект в список. То теперь такой: добавить пустой объект в список, показать этот объект в представлении. Одна незадача: если пользователь передумал создавать новый объект и хочет отказаться, то раньше он бы просто закрыл окно, а теперь ему надо удалить только что созданный объект с умолчальными значениями свойств. Правда, объект пока только в модели представления существует, так что и удалять его придётся только из модели представления. А синхронизацию модели представления с моделью можно уже и по отдельной кнопке сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2012, 16:28 |
|
|
start [/forum/topic.php?fid=21&msg=37605721&tid=1441989]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 347ms |
total: | 468ms |
0 / 0 |