0

我在 ListView 中遇到了 Combobox 的问题。我有一个名为“Substrate”的课程。该类包含一个名为“SubstrateType”的类的对象。我想在 Listview 中显示“Substrate”类的对象。“Substrate”的每个属性都显示在 Listview 的列中。对于不同的“SubstrateType”,我想使用组合框。

在 XAML 中,我这样尝试:

<ComboBox Name="CBType"
          ItemsSource="{Binding ElementName=SettingsSubstrate, Path=TypeList}"
          SelectedItem="{Binding Path=Substrate.SubstrateType}"
          DisplayMemberPath="Description"/>

在代码隐藏中,我得到了两个 ObservableCollections。一个用于所有 Substrate,一个用于所有可能的 SubstrateTypes。如果单击组合框,则会显示所有 SubstrateType。但是如果您不选择一个,则组合框没有选定项。

http://i44.tinypic.com/2eakxav.png

提前致谢。

4

1 回答 1

0

我不知道您的确切代码,但如果您的 ListView 行显示类型的对象Substrate,那么您的 Binding PathSelectedItem应该只是SubstrateType因为 ListViewItem 的 DataContext 已设置为Substrate对象:

SelectedItem="{Binding Path=SubstrateType}"

此外,您需要确保您的SubstrateType实例实际上被认为是平等的。如果SubstrateType您的对象中的实例与属性中的实例Substrate完全相同TypeList,则不会选择它。您可以通过覆盖该Equals(...)方法并定义您的自定义比较来解决此问题。

如果这不起作用,请提供更多代码,例如周围的 XAML 以及Substrate代码隐藏/ViewModel/whatever 的代码。

于 2010-04-15T14:58:56.663 回答