MultiDataTriggers и VisualState
Я пытаюсь создать систему меню, которая изменяет шаблон содержимого для панели ПОСЛЕ того, как панель была закрыта из-за изменения визуального состояния, но до повторного открытия панели (подумайте о фильтре вставки / вывода слайдов). Я надеялся добиться этого, используя комбинацию триггеров данных, но не испытывал радости:(Некоторый код был опущен для краткости, но моя настройка триггера выглядит следующим образом:
<ContentControl x:Name="contentControl" Content="{Binding SelectedThing}"
DataContext="{Binding}" Width="200">
<ContentControl.ContentTemplate>
<DataTemplate>
<ContentControl Name="cc"
Content="{Binding}" />
<DataTemplate.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Value="People"
Binding="{Binding Path=Name}">
</Condition>
<Condition Value="0"
Binding="{Binding ElementName=contentControl,Path=Width}">
</Condition>
</MultiDataTrigger.Conditions>
<Setter TargetName="cc"
Property="ContentTemplate"
Value="{StaticResource PeopleTemplate}" />
</MultiDataTrigger>
....
Триггер корректно изменяет шаблон, когда я опускаю привязку для ширины contentControl, но я не могу определить, почему (ширина анимируется с помощью изменения визуального состояния)?
Есть идеи?
Спасибо
1 ответ
Попробуйте изменить Path=Width на Path=ActualWidth.
Я предполагаю, что триггер не срабатывает, потому что свойство Width фактически не сообщает, что оно равно 0.
Вы можете использовать Snoop для подтверждения этого http://snoopwpf.codeplex.com/