0

ListView の Combobox に問題があります。「Substrate」というクラスがあります。このクラスには、「SubstrateType」というクラスのオブジェクトが含まれています。リストビューでクラス「サブストレート」のオブジェクトを表示したい。「基板」の各プロパティは、リストビューの列に表示されます。別の「SubstrateType」については、コンボボックスを使用したいと考えています。

XAMLでは、次のように試しました:

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

コード ビハインドでは、2 つの ObservableCollection を取得しました。すべての Substrates 用に 1 つと、可能なすべての SubstrateTypes 用に 1 つ。コンボボックスをクリックすると、すべての SubstrateTypes が表示されます。ただし、選択しないと、コンボボックスには選択されたアイテムがありません。

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

前もって感謝します。

4

1 に答える 1

0

あなたの正確なコードはわかりませんが、ListView 行に type のオブジェクトが表示される場合、ListViewItemの DataContext が既にオブジェクトに設定されているためSubstrate、のバインド パスは次のSelectedItemようになります。SubstrateTypeSubstrate

SelectedItem="{Binding Path=SubstrateType}"

SubstrateTypeさらに、インスタンスが実際に等しいと見なされることを確認する必要があります。オブジェクトのSubstrateTypeインスタンスがプロパティのインスタンスとまったく同じでない場合、そのインスタンスは選択されません。メソッドをオーバーライドして、等値のカスタム比較を定義することで、これを修正できます。SubstrateTypeListEquals(...)

これでうまくいかない場合は、周囲の XAML やSubstrate分離コード/ViewModel などのコードなど、さらにコードを提供してください。

于 2010-04-15T14:58:56.663 に答える