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

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

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

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



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

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

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

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

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

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

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

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

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


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