[ad_1]
かなり標準的な MVVM パターンに従う WPF アプリケーションがあります。 UI にはいくつかの要素が含まれています。 ComboBox
リストにバインドするコントロール ユーザー オブジェクト、それぞれが 名前 財産。 の ComboBox.DisplayMemberPath
に設定されています。 これまでのところすべて順調です。
場合によっては、 ComboBox
ドロップダウン。 これを行うには、 List<User>
ロジック層でヌルに。 これは、他の多くのものがクリアされると同時に発生するため、私は INotifyPropertyChanged
プロパティ名に空の文字列を指定して、バインドされたすべての UI コントロールを更新します。 これは、例外を除いて機能するようです ComboBox
コントロールします。 これらは最後に表示された名前を保持します。
を取得する方法はありますか ComboBox
バインドされているリストがnullに設定されていることをUIで認識するか、別のアプローチを取る必要がありますか?
私が試したこと:
の設定 SelectedIndex
UIで-1にするとこれは修正されますが、イベントなどをロジックに入れてUIをトリガーしてこれを行う必要があります。
解決策 1
サンプルコードを提供しない限り、何が起こっているのかわかりません。
通常、WPF でデータ バインディングを使用している場合は、実装済みです。 INotifyPropertyChanged
と INotifyCollectionChanged
コレクション/リスト用。 ObservableCollection
両方を実装します:
public class ObservableCollection<T> : Collection<T>, INotifyCollectionChanged, INotifyPropertyChanged
データ バインディングの要件に従っている場合は、バインディングの問題が発生する可能性があります。 Visual Studio の最新バージョンには、 XAML バインディングの失敗 窓:
Menu > Debug > Windows > XAML Binding Failures
3 つ目の可能性は、パブリック プロパティではなく、パブリック フィールドを使用していることです。 フィールドではなく、プロパティにのみデータ バインドできます。
それでも問題が解決しない場合は、質問を更新し、簡潔で的を絞った内容にしてください。
[ad_2]
コメント