これは最初の状況です:
XAML:
<ComboBox Grid.Row="0"
Grid.Column="1"
Margin="0,3"
HorizontalAlignment="Stretch"
DisplayMemberPath="DisplayText"
ItemsSource="{Binding ObjectSource}" />
ビューモデル:
public Collection<MyObjects> ObjectSource
{
get
{
return this.objectSource;
}
set
{
this.SetProperty(ref this.objectSource, value);
}
}
My Objects には、名前 (文字列)、有効な日付 (dateTime)、および表示用に名前と有効な日付を組み合わせた displayText (文字列のみ取得) が含まれています。
この簡単な状況では、コンボボックスを開いてすべてのエントリを表示できます.1つを選択すると、コンボボックス内に正しい表示テキストも表示されます. ここで、ドロップダウン エリアを再度開き、別のエントリを選択します。その結果、選択したアイテムが切り替わります (ドロップダウン エントリを再度開くと、強調表示されたアイテムが表示されます)。ただし、コンボボックス内に表示されるアイテムは変更されず、最初の選択の DisplayText が残っています。
コンボボックスが更新されない理由を知っている人はいますか? 前もって感謝します
編集:彼らの助けに感謝します。問題は、Equals のオーバーライドのバグでした。