7

私は WPF を初めて使用します。以下の質問は多くの人にとってばかげているように見えるかもしれませんが、ご容赦ください。

app.xaml.cs で依存関係プロパティを作成するにはどうすればよいですか?

実際に作ってみました。以下のコード、

    public static DependencyProperty TempProperty =
       DependencyProperty.Register("Temp", typeof(string), typeof(App));

    public string Temp
    {
        get { return (string)GetValue(TempProperty); }
        set { SetValue(TempProperty, value); }
    }

以下のコンパイル時エラーをスローします。

名前 'GetValue' は現在のコンテキストに存在しません

名前 'SetValue' は現在のコンテキストに存在しません

誰でもこれで私を助けることができますか?

ありがとうございました!

4

2 に答える 2

13

DependencyProperties は DependencyObjects でのみ作成できます。Application (App クラスの継承元) はそれを実装していないため、App クラスで DependencyProperty を直接作成することはできません。

このプロパティでバインドをサポートする必要があると思います。この場合、次の 2 つのオプションがあります。

  1. App.xaml.cs に INotifyPropertyChanged を実装する
  2. プロパティを含む DependencyObject 派生クラスを作成し、アプリの標準の読み取り専用プロパティとして公開します。プロパティは、それらに「ドットダウン」することで正常にバインドできます。つまり、新しいプロパティが Properties と呼ばれる場合、次のようにバインドできます。
   <TextBlock Text="{Binding Properties.Temp}" />

プロパティを Binding のターゲットにする必要がある場合は、オプション #2 が最適です。

于 2009-08-28T21:36:24.457 に答える
1

依存関係プロパティを含むクラスは、DependencyObjectから継承する必要があります。

于 2009-08-28T21:25:07.257 に答える