2

ViewModel から ObservableCollection にバインドされた単純な Datagrid があります。この ObservableCollection は、ObservableCollection などのカスタム タイプによって構成されます。

ComplexType には 2 つのプロパティしかなく、画面上で編集できるのは 1 つだけです。もう 1 つは最初のものに依存する bool 型です。

最初のプロパティを編集すると、ComplexType に反映され、2 番目のプロパティも変更されます。ただし、画面上の 2 番目のプロパティは変更されません。

画面上の 2 番目のプロパティを更新するにはどうすればよいですか?

4

2 に答える 2

3

これを試して:

public class ComplexType:INotifyPropertyChanged
{
    private object someProperty1;
    public object SomeProperty1
    {
        get{return someProperty1;}
        set
        {
            someProperty1=value;
            SomeProperty2=somefunc(someProperty1);

            If(PropertyChanged!=null){PropertyChanged(this, new PropertyChangedEventArgs(SomeProperty1));}
        }
    }

    private object someProperty2;
    public object SomeProperty2
    {
        get{return someProperty2;}
        set
        {    
        someProperty2=value;

        If(PropertyChanged!=null){PropertyChanged(this, new PropertyChangedEventArgs(SomeProperty2));}
        }

    public event PropertyChangedEventHandler PropertyChanged;
}
于 2013-01-18T15:27:34.573 に答える
2

監視可能なコレクションは、アイテムが追加、削除されたとき、またはコレクション全体が更新されたときにのみ通知を提供します。変更時に UI を更新する場合は、各プロパティが PropertyChanged イベントを発生させるか、依存関係プロパティであることを確認する必要があります。

于 2013-01-18T14:05:21.523 に答える