在网格中绑定组合框选定值

时间:2011-09-22 13:46:05

标签: c# wpf

我有一个组合框作为gridview中的一列,它被绑定到一个本地属性,如下所示:

<ComboBox Name="cboMetaDataTypes" ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=MetaDataTypes}" 
DisplayMemberPath="Value" SelectedValuePath="Key"/>

Source MetaDataTypes是KeyValuePairs的列表,其中显示了Value属性,如您所见。

现在我被卡住了。我想将选定的值绑定到与列的键匹配的键。我希望选定的值绑定到本地属性。我尝试了很多,但我无法实现。 谁能给我指示?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果我理解你想要的东西,你想要将SelectedValue属性绑定到Window类中的属性(如MyWindow.xaml.cs文件中所定义)。根据我的经验,这样做的最好方法是为窗口类分配一个如下名称:

<Window x:Name="myWindow" ... >

然后您可以使用ComboBox执行以下操作

<ComboBox Name="cboMetaDataTypes" ItemsSource="{Binding RelativeSource={RelativeSource
          FindAncestor, AncestorType={x:Type Window}}, Path=MetaDataTypes}" 
          DisplayMemberPath="Value" SelectedValuePath="Key"
          SelectedValue="{Binding ElementName=myWindow, Path=myProperty }" />

您可能需要将myProperty定义为依赖项属性,以使双向数据绑定正常工作。