2010-04-15 36 views
0

我在ListView中遇到了Combobox問題。 我有一個叫「Substrate」的課。這個類包含一個名爲「SubstrateType」的類的對象。我想在Listview中顯示類「Substrate」的對象。 「Substrate」的每個屬性都顯示在Listview的列中。對於不同的「SubstrateType」,我想使用組合框。Wpf SelectedItem不會爲ListView中的Combobox工作

在XAML我試着這樣說:

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

在代碼隱藏我有兩個ObservableCollections。一個用於所有襯底,另一個用於所有可能的襯底類型。如果單擊它,組合框將顯示所有SubstrateType。但是如果你不選擇一個,組合框沒有selecteditem。

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

在此先感謝。

回答

0

我不知道你確切的代碼,但如果你的ListView行顯示Substrate類型的對象,那麼對於SelectedItem您綁定路徑應該只是SubstrateType因爲一個ListViewItem的DataContext的已被設置爲Substrate對象:

SelectedItem="{Binding Path=SubstrateType}" 

此外,您需要確保您的SubstrateType實際上被認爲是平等的。如果Substrate對象中的SubstrateType實例不是,而TypeList屬性中的實例相同,將不會被選中。您可以通過覆蓋Equals(...)方法並定義您的自定義比較來確定相等性。

如果這不起作用,請提供更多代碼,例如周圍的XAML和代碼Substrate以及code-behind/ViewModel/whatever。