2

ViewModel に CollectionViewSource プロパティがあります。

この ViewModel は、次の方法で ComboBox にバインドされます。

<ComboBox   ItemsSource="{Binding Products.View}" 
SelectedItem="{Binding SelectedEntity.Product}"  
IsSynchronizedWithCurrentItem="True"/>

既存の SelectedEntity にバインドすると、正常に機能します。

SelectedEntity製品を所有していないにバインドしようとすると、リストから最初の項目を表示したいと考えています。したがって、使用しようとしましProducts.View.MoveCurrentToFirst()たが、まだ最初の項目が表示されません。

もちろん、設定すると機能しますSelectedEntity.Product = Products.View.CurrentItem.

コードを改善するにはどうすればよいですか? これは私には少し間違っているように見えます...

4

1 に答える 1

0

WPF の SelectedItem はインスタンス全体を選択するため、SelectedItem をエンティティのナビゲーション プロパティにバインドしている場合は、すべて問題ありません。ただし、SelectedItem をエンティティの非ナビゲーション プロパティにバインドしている場合、これは問題になる可能性があります。これがビジネス要件である場合は、代わりに SelectedValue をバインドすることをお勧めします。

私にとっては、SelectedItem をエンティティのナビゲーション プロパティにバインドし、SelectedValue をエンティティの値プロパティにバインドするのが最善だと思います。

これが役立つことを願っています。

于 2012-12-03T19:16:02.533 に答える