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/

Другие вопросы по тегам