Как изменить состояние элементов контейнера на основе состояния контейнера (WPF / XAML) - PullRequest
0 голосов
/ 13 июля 2010

У меня есть список с элементами, созданными с помощью привязки данных.Шаблон элемента создает настраиваемое представление для каждого сгенерированного элемента.Каждое сгенерированное представление элемента является его собственным пользовательским элементом управления.

Я хотел бы изменить состояние списка на что-то вроде «Детали» по сравнению с «Компактным», и чтобы каждый элемент автоматически изменял свое собственное состояние.Элемент представления знает, что отображать или скрывать, в зависимости от его состояния.Кажется, я не могу изменить состояние сгенерированного пользовательского элемента управления с более высокого уровня (кнопка для изменения режимов просмотра).

Надеюсь, это достаточно ясно.Я добавлю детали, если это поможет.

Большое спасибо за любую помощь!

Ответы [ 2 ]

1 голос
/ 13 июля 2010

Установите триггер данных в сгенерированном элементе управления, который связан с относительным свойством родителя.Подробнее здесь об использовании RelativeSource - вы ищете опцию предка, которая будет родительским списком, который вы упомянули.

Допустим, вы выставили свойство ViewType в списке, а затем

{Binding Path=ViewType, RelativeSource={RelativeSource AncestorType={x:Type ListBox}}}

должно работать.

0 голосов
/ 13 июля 2010

Вы можете установить

MyValue = "{Binding Path=SelectedItem.CustomProperty, Converter=CustomPropertyConverter}"

Это будет перемещаться по цепочке объектов вниз по выбранному вами элементу.

FindAncestor поднимается по цепочке.

...