powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Тип контрола в зависимости от значения в источнике данных
6 сообщений из 6, страница 1 из 1
Тип контрола в зависимости от значения в источнике данных
    #37243072
Доброго всем дня.

С WPF только начал знакомство, поэтому прошу сильно не бить ногами, если вопрос окажется не совсем корректным или ответ подразумевает непосредственный посыл к мануалам (чему буду только рад) :-)

А вопрос заключается вот в чем. Допустим у меня есть некоторый источник данных (поле экземпляра класса), и в зависимости от его значения мне нужно выводить значение другого поля контролах разного типа?

Например, есть у нас класс MyClass, у него есть два поля, ValueType и MyValue.
Если в поле класса MyClass.ValueType значение 1, то выводить значение MyClass.MyValue необходимо в TextBox, если значение 2, то выводить MyClass.MyValue в ListBox (MyValue в таком случае может указывать на коллекцию)).
Реально ли организовать это с помощью XAML?
Как-то не красиво имхо, если я буду сперва формировать XAML в соответствии с полученными данными, а потом добавлять на форму через XAMLReader. Верю в великую силу XAML и WPF и их почти безграничные возможности.
...
Рейтинг: 0 / 0
Тип контрола в зависимости от значения в источнике данных
    #37243267
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Можно триггерами заполнять ContentControl.Content в зависимости от значения вашего свойства с типом.
2. Можно применить ContentControl.ContentTemplateSelector.
3. Можно сделать неявную привязку ваших классов к DataTemplate. Тогда при заполнении ContentControl.Content соответствующий шаблон выберется автоматически.
...
Рейтинг: 0 / 0
Тип контрола в зависимости от значения в источнике данных
    #37243365
Алексей К1. Можно триггерами заполнять ContentControl.Content в зависимости от значения вашего свойства с типом.
2. Можно применить ContentControl.ContentTemplateSelector.
3. Можно сделать неявную привязку ваших классов к DataTemplate. Тогда при заполнении ContentControl.Content соответствующий шаблон выберется автоматически.
Третий вариант мне кажется наиболее логичным, хотя требует устранения некоторых пробелов в знаниях. Но с этим я уже справлюсь. :-)
А по первому варианту вопрос, возможно глупый: то есть существует возможность в триггере проверять значение свойства? В моем представлении пока триггеры допускают лишь проверку состояния или значений свойств контрола, для которого они устанавливаются. Но теперь подозреваю, что это неправильное представление... :-)
...
Рейтинг: 0 / 0
Тип контрола в зависимости от значения в источнике данных
    #37243384
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДобрыйЧеловекА по первому варианту вопрос, возможно глупый: то есть существует возможность в триггере проверять значение свойства? В моем представлении пока триггеры допускают лишь проверку состояния или значений свойств контрола, для которого они устанавливаются. Но теперь подозреваю, что это неправильное представление... :-)Есть DataTrigger. В нём можно "проверять" значение свойства, указанное через Binding. Соответственно, это может быть свойство не только контрола.
...
Рейтинг: 0 / 0
Тип контрола в зависимости от значения в источнике данных
    #37243415
Алексей К,
благодарю за ответы! Пойду-ка я восполнять пробелы в мат-части.
...
Рейтинг: 0 / 0
Тип контрола в зависимости от значения в источнике данных
    #37245247
Руки-крюки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДобрыйЧеловек,

Если значение свойства будет принимать значения разного типа (например, наследников какого-нибуть абстрактного класса, или тупо object), то лучший вариант:
Алексей К2. Можно применить ContentControl.ContentTemplateSelector.

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


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