1

現在、次のアプローチを使用して、xaml でバインドするプロパティの変更通知をセットアップしています。

    class MyClass : INotifyPropertyChanged
{
    string name;

    public string Name
    {
        get { return name; }
        set
        {
            name = value;
            NotifyPropertyChanged("Name");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    public void NotifyPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}

ただし、依存関係プロパティを実装するには、登録やコールバックの設定などを行う必要があることがわかりました。これにより、上記のコードが呼び出されます。

では、上記のアプローチをそのまま使用できるのに、依存関係プロパティに余分なボイラー プレートをすべて設定する意味は何ですか?

ありがとう。

4

2 に答える 2

3

依存関係プロパティはバインディングのターゲットにすることができますが、通常の CLR プロパティはできません。そのため、コントロール (バインディング ターゲット) のプロパティは通常依存関係プロパティですが、モデルまたは ViewModel クラス (バインディング ソース) のプロパティはそうではありません。

于 2009-09-07T18:40:56.093 に答える
1

あなたがしていることは正しいです(私が正しく理解していると仮定します)依存関係プロパティは、モデルにバインドするものではなく、モデルがバインドされるコントロールのプロパティ用です-たとえば、テキストボックスの Text プロパティ.

カスタム コントロールでそれらを使用する理由はいくつかありますが、例のように宣言されたプロパティに正しくバインドされるように、それらに付属する自動配管が特に重要です。

于 2009-09-07T11:11:21.287 に答える