Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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!

like image 781
Vijay Avatar asked Aug 28 '09 19:08

Vijay


2 Answers

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.

like image 94
Abe Heidebrecht Avatar answered Sep 18 '22 18:09

Abe Heidebrecht


You class that contains dependency properties must inherit from DependencyObject.

like image 29
Jeremiah Morrill Avatar answered Sep 20 '22 18:09

Jeremiah Morrill