wpf - 正确使用 PropertyChangedTrigger 和 ChangePropertyAction

标签 wpf xaml

当我的 ComboBox 上的 ItemsSource 属性发生变化时,我试图设置一个默认的选定值

我的 xaml:

<ComboBox ItemsSource="{Binding SelectedItemsSource, Mode=OneWay}" x:Name="c1">
   <i:Interaction.Triggers>
         <ei:PropertyChangedTrigger Binding="{Binding ItemsSource,RelativeSource={RelativeSource Self}}">
              <ei:ChangePropertyAction PropertyName="SelectedIndex" Value="{StaticResource zero}" TargetName="c1"/>
         </ei:PropertyChangedTrigger>                        
   </i:Interaction.Triggers>             
</ComboBox>

我的 VM 中的 SelectedItemsSource 动态变化,我希望每次发生这种情况时都选择第一个项目。

知道为什么这行不通吗?

最佳答案

尝试设置属性 IsSynchronizedWithCurrentItem为您的组合框设置为 true 并完全删除触发器 -

<ComboBox ItemsSource="{Binding SelectedItemsSource, Mode=OneWay}"
          IsSynchronizedWithCurrentItem="True">             
</ComboBox>

关于wpf - 正确使用 PropertyChangedTrigger 和 ChangePropertyAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12337442/

相关文章:

c# - 将一个按钮绑定(bind)到 3 个不同的 DataGrids,每个 DataGrids 在 TabControl 中

silverlight - 在Silverlight中,使用XAML剪贴画的正确方法是什么?

wpf - 如何刷新多重绑定(bind)

c# - 使用 MVVM 时应该将 WPF 特定代码放在哪里?

c# - GridSplitter 禁用我的 RowDefinition 样式

c# - WPF 网格不同的列大小和位置

c# - 以相同方式设置 StackPanel 中所有按钮的样式 (UWP)

c# - UWP 中的 ListView 在 INotifyCollectionChanged 报告批量更改时出现意外行为

c# - DataTable 或 DataSet 的 XML 反序列化

c# - 如何在 Trigger 的 ListBoxItem 中找到子控件的 IsEnabled 属性