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.Empty
SelectedItemがまたはの場合はTextBlockが正しく更新されますが、SelectedItemがの場合null
はComboBoxが正しく更新されません(古い値が残ります)string.Empty
。SelectedItemがnull
valueの場合にのみクリアされます。
なぜこれが発生するのですか?
//編集:
多分私はそれを間違って説明しました。2つのグリッドがあります。左側にはファイルのあるツリーがあり、右側には選択したファイルのプロパティがあります。プロパティが設定されていないファイルを最初に選択するA
と、ComboBoxは空になります。このプロパティが設定されているファイルを選択するB
と、ComboBoxに表示されます。次に、プロパティが空のファイルを選択するC
と、古い値はComboBoxに残ります(選択したファイルの前から- B
)。からのこのプロパティC
がnull
、ではないstring.Empty
場合、ComboBoxはクリアされます。