我不确定这是否可能。我创建了这样的组合框。。。
<ComboBox Name="testType"
Margin="0,5,0,0"
IsTextSearchEnabled="True"
DisplayMemberPath="Description"
SelectedValue="{Binding MyClass.Id, Mode=TwoWay}"
SelectedValuePath="Id"/>
后面的代码加载了可用的选项。。。
DataTable testCatList = TestTypeBase.GetAll();
testType.ItemsSource = testCatList.DefaultView;
以便它正确地显示MyClass中的所有项目。当用户进行选择时,MyClass中的Id字段将按预期进行更新。太棒了
我的问题是:我的testCatList包含每一行的Id和Description,我希望这两个字段都绑定到当前的MyClass实例。下面是我尝试的:
<ComboBox Name="testType"
Margin="0,5,0,0"
IsTextSearchEnabled="True"
DisplayMemberPath="Description">
<ComboBox.SelectedValue>
<MultiBinding Converter="{???}">
<Binding Path="MyClass.Id" Mode="TwoWay"/>
<Binding Path="MyClass.Description" Mode="TwoWay"/>
</MultiBinding>
</ComboBox.SelectedValue>
</ComboBox>
在这里,我希望将MyClass.Id设置为所选的Id,并将MyClass.Description设置为所选择的Description。正如您所看到的,我已经删除了SelectedValuePath,因为我不再只是想要Id了。但我不知道转换器该用什么(见上面的问号)。
StackOverflow的专家们,有什么想法吗?谢谢
如果我理解正确,请尝试使用SelectedItem
属性而不是SelectedValue
。通过这种方式,您将获得选定的MyClass
实例,当然还有它的所有属性。
SelectedItem="{Binding CurrentSelectedMyClassItem}"