一个组合框选择可以绑定到两个不同的数据吗



我不确定这是否可能。我创建了这样的组合框。。。

<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}"

相关内容

  • 没有找到相关文章

最新更新