当SelectedValue不在ItemsSource中时,突出显示组合框

时间:2018-10-18 11:07:45

标签: c# wpf data-binding combobox

我有一个带有许多组合框的窗口。这些组合框看起来像这样,有一种样式:

<ComboBox Style="{StaticResource ComboBoxFlat}" 
              ItemsSource="{Binding Source={x:Static binding:BindingCollections.Names}}" 
              SelectedValuePath="Key"
              DisplayMemberPath="Value"
              SelectedValue="{Binding NameID}"/>

ItemsSource是一个键值列表,将显示这些值。到目前为止,所有这些都有效。

现在,可能会发生以下情况:绑定到SelectedValue的属性包含ItemsSource中不存在的键。如果发生这种情况,则应以某种方式标记组合框,例如组合框应显示为红色框。

做到这一点的最佳方法是什么? 可以用组合框样式定义这种行为吗?

1 个答案:

答案 0 :(得分:1)

您可以绑定到SelectedIndex的{​​{1}}属性和ComboBox源属性,并实现一个NameID,如果{{1 }}属性返回IMultiValueConverter,而true属性返回一个值,例如:

SelectedIndex

XAML:

-1