我有两个组合框绑定到相同的ObservableCollection属性,我想知道是否可以禁用combox中的项目,如果它已经在其中一个中被选中了?在wpf。 THX
答案 0 :(得分:0)
你可以:
IsEnabled
属性:Disallow/Block selection of disabled combobox item in wpf(感谢Kamil获取链接)您的选择仅取决于您尝试实现的经验。
答案 1 :(得分:0)
您可以将ComboBox项的IsSelected属性绑定到一个bool,用于标识类中的选定状态。
wildcard
创建一个暴露几个bool的类
<ComboBox ItemsSource="{Binding Items}">
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Setter Property="IsSelected" Value="{Binding SelectedA, Mode=OneWayToSource}"></Setter>
<Setter Property="IsEnabled" Value="{Binding SelectedB}"></Setter>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
<ComboBox ItemsSource="{Binding Items}">
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Setter Property="IsSelected" Value="{Binding SelectedB, Mode=OneWayToSource}"></Setter>
<Setter Property="IsEnabled" Value="{Binding SelectedA}"></Setter>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
(在示例中,我只是在吸气器中反转每个选定的bool,但实际上翻转bool可能最好使用转换器执行)