-1

WPF/MVVMプロジェクトのComboBoxに問題があります。ViewModelを変更した後(私はすべてを正しく使用します:INotifyPropertyChangedObservableCollectionなど)、ComboBoxは常にその値を変更するとは限りません。デバッグしましたが、ViewModelのゲッターが正しい値(string.Empty)を返しましたが、ComboBoxはリストの値を表示しました。以下のコードのビット:

// It doesn't work.
<ComboBox ItemsSource="{Binding ItemsCollection}" SelectedItem="{Binding SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

// It works.
<TextBlock Text="{Binding SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

string.EmptySelectedItemがまたはの場合はTextBlockが正しく更新されますが、SelectedItemがの場合nullはComboBoxが正しく更新されません(古い値が残ります)string.Empty。SelectedItemがnullvalueの場合にのみクリアされます。
なぜこれが発生するのですか?

//編集

多分私はそれを間違って説明しました。2つのグリッドがあります。左側にはファイルのあるツリーがあり、右側には選択したファイルのプロパティがあります。プロパティが設定されていないファイルを最初に選択するAと、ComboBoxは空になります。このプロパティが設定されているファイルを選択するBと、ComboBoxに表示されます。次に、プロパティが空のファイルを選択するCと、古い値はComboBoxに残ります(選択したファイルの前から- B)。からのこのプロパティCnull、ではないstring.Empty場合、ComboBoxはクリアされます。

4

1 に答える 1

0

ComboBoxのObservableCollectionの代わりにCollectionViewSourceを使用します。

于 2013-01-16T19:06:01.597 に答える