Свойство зависимости в app.xaml.cs - PullRequest
7 голосов
/ 28 августа 2009

Я новичок в 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' не существует в текущем контексте

Кто-нибудь может мне помочь в этом?

Спасибо!

Ответы [ 2 ]

13 голосов
/ 29 августа 2009

DependencyProperties могут быть созданы только для DependencyObjects, и, поскольку Application (от которого наследуется ваш класс App) не реализует его, вы не можете создать DependencyProperty непосредственно в классе App.

Полагаю, вы хотите, чтобы это свойство поддерживало привязку. Если это так, у вас есть два варианта:

  1. Реализация INotifyPropertyChanged в App.xaml.cs
  2. Создайте производный класс DependencyObject со своими свойствами и предоставьте его в качестве стандартного свойства только для чтения вашего приложения. Затем свойства могут быть успешно привязаны к ним путем «расстановки точек». Т.е. если ваше новое свойство называется «Свойства», вы можете связать его так:
   <TextBlock Text="{Binding Properties.Temp}" />

Если свойство должно быть целью привязки, тогда лучшим вариантом будет вариант №2.

1 голос
/ 29 августа 2009

Ваш класс, содержащий свойства зависимостей, должен наследоваться от DependencyObject.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...