У меня есть приложение WPF с расширителем, в котором я хочу изменить свойство IsExpanded
на основе значения enum в моей модели представления, т.е. я хочу, чтобы расширитель открывался или закрывался на основе
это свойство перечисления. Я использую триггеры данных в xaml для обновления свойства IsExpanded на основе
на стоимость моего свойства enum backing.
<Expander Header="Information and Procedures"
BorderThickness="0"
Margin="5">
<Expander.Style>
<Style TargetType="{x:Type Expander}" BasedOn="{StaticResource MetroExpander}">
<Style.Triggers>
<DataTrigger Binding="{Binding DataContext.Item.Match, RelativeSource={RelativeSource AncestorType={x:Type UserControl}, Mode=FindAncestor}, Mode=TwoWay}"
Value="{x:Static enum:Match.Multiple}">
<Setter Property="IsExpanded" Value="False"/>
</DataTrigger>
<DataTrigger Binding="{Binding DataContext.Item.Match, RelativeSource={RelativeSource AncestorType={x:Type UserControl}, Mode=FindAncestor}, Mode=TwoWay}"
Value="{x:Static enum:Match.None}">
<Setter Property="IsExpanded" Value="True"/>
</DataTrigger>
<DataTrigger Binding="{Binding DataContext.Item.Match, RelativeSource={RelativeSource AncestorType={x:Type UserControl}, Mode=FindAncestor}, Mode=TwoWay}"
Value="{x:Static enum:Match.Exact}">
<Setter Property="IsExpanded" Value="True"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Expander.Style>
<WrapPanel Orientation="Horizontal" Background="Transparent">
<view:InformationView Margin="0 0 20 0"/>
<view:ProceduresView Margin="0 0 0 0" />
</WrapPanel>
</Expander>
Это работает, пока мы не расширим расширитель вручную. После этого кажется, что данные
триггеры теперь игнорируются, и свойство IsExpanded, установленное вручную, не изменится, пока пользователь
вручную открывает или закрывает расширитель снова.
Я хочу, чтобы пользователь мог вручную развернуть или закрыть его, но я хочу, чтобы триггеры данных имели приоритет
через пользовательский ввод.
Примечание. Я не хочу, чтобы значение Match изменялось свойством IsExpanded. Соответствие обновляется отдельно, но его значение влияет на IsExpanded