更新ComboBox所选项目

时间:2017-01-18 22:50:47

标签: c# wpf c#-4.0 mvvm

我有一个ComboBox,它是从ItemsSource集合中填充的。我将所有客户填充到Observable Collection中,然后将其绑定到集合中,就像这样。

<ComboBox ItemsSource="{Binding Path=Customers}"
          SelectedValue="{Binding CustomerKey}"
          DisplayMemberPath="FullName" SelectedValuePath="{Binding Key}" />

在同一视图中,我有一个数据网格,其中包含订单的基本信息。选择订单后,在视图模型中,我将获得订单的更详细记录。我想要做的是使用新选择的订单的客户信息更新视图。

我试图设置CustomerKey,然后根据它的关键选择该客户 - 我认为我这样做完全错了。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:0)

ComboBox的SelectedValuePath属性应该设置为 string (而不是绑定),它指定存储密钥的Customer类的属性名称:

<ComboBox ItemsSource="{Binding Path=Customers}"
          SelectedValue="{Binding CustomerKey}"
          DisplayMemberPath="FullName" SelectedValuePath="Key" />

如果Customer类具有FullName和Key属性,并且Key属性与视图模型的CustomerKey属性具有相同的类型,则此方法将起作用。

具有与您设置CustomerKey属性的值匹配的键的客户也必须存在于您将ComboBox绑定到要选择的项目的Customers集合中。