Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как получить новый объект из привязанного ContentControl? / 5 сообщений из 5, страница 1 из 1
07.01.2012, 13:26
    #37604859
user7320
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить новый объект из привязанного ContentControl?
Есть листбокс с объектами. К нему прибайндин ContentControl с шаблоном данных. Шаблон всё отображает по клику на листбоксе. Но вот как добавить новый объект а этому листбоксу? Ну т. е. я заполняю поля в шаблоне, а потом жму кнопку "Добавить к списку новый объект" и коллекция листбокса пополняется новым объектом.

Дело в том, что считать данные с контролов из шаблона данных нельзя - у них хоть и есть имена, но в коде пишется, что таких имён не существует.

Есть ли автоматизированный способ создавать такие новые объекты (байндингом же)? А то как-то получается, что показывать может сам через байндинги, а создать новый и закинуть в коллекцию - надо в коде считывать значения каждого контрола из шаблона данных. Да они ещё и не считываются.
...
Рейтинг: 0 / 0
07.01.2012, 13:49
    #37604877
user7320
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить новый объект из привязанного ContentControl?
Ну т. е. отображать такая конструкция данные может автоматически (т. е. сама разбрасывать данные по контролам через байндинги). Изменять уже существующие (через ObservableCollection) может тоже автоматически. А как теперь автоматически создавать новый объект? Т. е. данные ввести самому, а по кнопке чтобы этот объект из этой конструкции добавлялся к коллекции.
...
Рейтинг: 0 / 0
07.01.2012, 15:58
    #37604953
user7320
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить новый объект из привязанного ContentControl?
user7320Дело в том, что считать данные с контролов из шаблона данных нельзя - у них хоть и есть имена, но в коде пишется, что таких имён не существует.
Вот разметка

Код: html
1.
2.
3.
4.
5.
<ContentControl Name="DetailsContentControl">
	<ContentControl.ContentTemplate>
		<DataTemplate>
			<Grid>
				<TextBox Name="IdTextBox" >



В коде пишет, что DetailsContentControl есть, а IdTextBox - нету. Почему так?
...
Рейтинг: 0 / 0
08.01.2012, 17:43
    #37605721
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить новый объект из привязанного ContentControl?
user7320,

если хотите реализовать универсальный метод добавления новой записи, то на в голову приходит только рефлексия т.к. не помню что за коллекция может реализовать добавление через метод Add без атрибутов.

если нужно просто реализовать в "одном месте" то ничего не мешает просто добавлять уже известную сущность с определенными значениями.

касательно вопроса "почему я не могу обратиться к элементам вложенных в DataTemplate" - это ограничение самого DataTemplate, можете почитать в гугле почему так происходит, но достучаться до элементов возможность все же есть, вот выдержка помощника (который нашел на просторах интернета, к сожалению первоисточник найти не удалось), вот пример использования (смотреть метод GenerateFields).
...
Рейтинг: 0 / 0
10.01.2012, 16:28
    #37607862
user7320
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить новый объект из привязанного ContentControl?
Спасибо, Утка.

Насчёт добавления уже придумал просто добавлять новый объект с умолчальными значениями для свойств в список и сразу давать пользователю возможность редактировать эти свойства. Т. е. если раньше во всяких Вин Формс и WPF, сделанных по традиции Вин Формс, был сценарий добавления нового объекта такой:

показать окно с формой добавления с пустыми полями,
добавить заполненный объект в список.

То теперь такой:

добавить пустой объект в список,
показать этот объект в представлении.

Одна незадача: если пользователь передумал создавать новый объект и хочет отказаться, то раньше он бы просто закрыл окно, а теперь ему надо удалить только что созданный объект с умолчальными значениями свойств. Правда, объект пока только в модели представления существует, так что и удалять его придётся только из модели представления. А синхронизацию модели представления с моделью можно уже и по отдельной кнопке сделать.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как получить новый объект из привязанного ContentControl? / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]