Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Тип контрола в зависимости от значения в источнике данных
|
|||
|---|---|---|---|
|
#18+
Доброго всем дня. С WPF только начал знакомство, поэтому прошу сильно не бить ногами, если вопрос окажется не совсем корректным или ответ подразумевает непосредственный посыл к мануалам (чему буду только рад) :-) А вопрос заключается вот в чем. Допустим у меня есть некоторый источник данных (поле экземпляра класса), и в зависимости от его значения мне нужно выводить значение другого поля контролах разного типа? Например, есть у нас класс MyClass, у него есть два поля, ValueType и MyValue. Если в поле класса MyClass.ValueType значение 1, то выводить значение MyClass.MyValue необходимо в TextBox, если значение 2, то выводить MyClass.MyValue в ListBox (MyValue в таком случае может указывать на коллекцию)). Реально ли организовать это с помощью XAML? Как-то не красиво имхо, если я буду сперва формировать XAML в соответствии с полученными данными, а потом добавлять на форму через XAMLReader. Верю в великую силу XAML и WPF и их почти безграничные возможности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2011, 07:16 |
|
||
|
Тип контрола в зависимости от значения в источнике данных
|
|||
|---|---|---|---|
|
#18+
1. Можно триггерами заполнять ContentControl.Content в зависимости от значения вашего свойства с типом. 2. Можно применить ContentControl.ContentTemplateSelector. 3. Можно сделать неявную привязку ваших классов к DataTemplate. Тогда при заполнении ContentControl.Content соответствующий шаблон выберется автоматически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2011, 11:06 |
|
||
|
Тип контрола в зависимости от значения в источнике данных
|
|||
|---|---|---|---|
|
#18+
Алексей К1. Можно триггерами заполнять ContentControl.Content в зависимости от значения вашего свойства с типом. 2. Можно применить ContentControl.ContentTemplateSelector. 3. Можно сделать неявную привязку ваших классов к DataTemplate. Тогда при заполнении ContentControl.Content соответствующий шаблон выберется автоматически. Третий вариант мне кажется наиболее логичным, хотя требует устранения некоторых пробелов в знаниях. Но с этим я уже справлюсь. :-) А по первому варианту вопрос, возможно глупый: то есть существует возможность в триггере проверять значение свойства? В моем представлении пока триггеры допускают лишь проверку состояния или значений свойств контрола, для которого они устанавливаются. Но теперь подозреваю, что это неправильное представление... :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2011, 11:53 |
|
||
|
Тип контрола в зависимости от значения в источнике данных
|
|||
|---|---|---|---|
|
#18+
ДобрыйЧеловекА по первому варианту вопрос, возможно глупый: то есть существует возможность в триггере проверять значение свойства? В моем представлении пока триггеры допускают лишь проверку состояния или значений свойств контрола, для которого они устанавливаются. Но теперь подозреваю, что это неправильное представление... :-)Есть DataTrigger. В нём можно "проверять" значение свойства, указанное через Binding. Соответственно, это может быть свойство не только контрола. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2011, 12:01 |
|
||
|
Тип контрола в зависимости от значения в источнике данных
|
|||
|---|---|---|---|
|
#18+
Алексей К, благодарю за ответы! Пойду-ка я восполнять пробелы в мат-части. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2011, 12:13 |
|
||
|
Тип контрола в зависимости от значения в источнике данных
|
|||
|---|---|---|---|
|
#18+
ДобрыйЧеловек, Если значение свойства будет принимать значения разного типа (например, наследников какого-нибуть абстрактного класса, или тупо object), то лучший вариант: Алексей К2. Можно применить ContentControl.ContentTemplateSelector. Если один тип, но разные значения, то: Алексей К1. Можно триггерами заполнять ContentControl.Content в зависимости от значения вашего свойства с типом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2011, 13:06 |
|
||
|
|

start [/forum/topic.php?fid=21&msg=37243415&tid=1442324]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 161ms |

| 0 / 0 |
