Vijay
Vijay

Reputation: 2133

Dependency property in app.xaml.cs

I am new to WPF and the below question may look silly for many, please pardon me.

How can I create a dependency property in app.xaml.cs?

Actually, I tried to created it. The below code,

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

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

throws the below compile time errors:

The name 'GetValue' does not exist in the current context

The name 'SetValue' does not exist in the current context

Can anybody help me in this?

Thank you!

Upvotes: 7

Views: 9934

Answers (2)

Abe Heidebrecht
Abe Heidebrecht

Reputation: 30498

DependencyProperties can only be created on DependencyObjects, and since Application (which your App class inherits from) doesn't implement it, you can't create a DependencyProperty directly on the App class.

I assume you want this property to support binding. If this is the case, you have two options:

  1. Implement INotifyPropertyChanged in App.xaml.cs
  2. Create a DependencyObject derived class with your properties on it, and expose it as a standard read-only property of your App. The properties can then be successfully bound by "dotting-down" to them. i.e if your new property is called Properties, you can bind like so:
   <TextBlock Text="{Binding Properties.Temp}" />

If the property needs to be the target of a Binding, then option #2 is your best bet.

Upvotes: 13

Jeremiah Morrill
Jeremiah Morrill

Reputation: 4268

You class that contains dependency properties must inherit from DependencyObject.

Upvotes: 1

Related Questions