WPF/MVVMプロジェクトのComboBoxに問題があります。ViewModelを変更した後(私はすべてを正しく使用します:INotifyPropertyChanged、ObservableCollectionなど)、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)。からのこのプロパティCがnull、ではないstring.Empty場合、ComboBoxはクリアされます。