我不确定这是否可行。我创建了一个像这样的ComboBox ......
<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的专家哦?感谢。
答案 0 :(得分:0)
如果我理解正确,请尝试使用SelectedItem
属性而不是SelectedValue
。
通过这种方式,您将获得所选的MyClass
实例,当然还有所有属性。
SelectedItem="{Binding CurrentSelectedMyClassItem}"