2009-08-28 13 views
7

Ich bin neu bei WPF und die unten stehende Frage kann für viele dumm aussehen, bitte verzeihen Sie mir.Abhängigkeit Eigenschaft in app.xaml.cs

Wie kann ich eine Abhängigkeitseigenschaft in app.xaml.cs erstellen?

Eigentlich habe ich versucht, es zu erstellen. Der Code unten,

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

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

wirft die folgenden Zeitfehler kompilieren:

Der Name ‚GetValue‘ existiert nicht im aktuellen Kontext

Der Name ‚SetValue‘ existiert nicht im aktuellen Kontext

Kann mir jemand dabei helfen?

Vielen Dank!

+2

Keine Frage ist albern. Atleast, nicht dein :) – shahkalpesh

+0

oh ... danke! :) – Vijay

Antwort

13

DependencyProperties können nur auf DependencyObjects erstellt werden, und da Application (von der Ihre App-Klasse erbt) diese nicht implementiert, können Sie DependencyProperty nicht direkt in der App-Klasse erstellen.

Ich nehme an, dass diese Eigenschaft die Bindung unterstützen soll. Wenn dies der Fall ist, haben Sie zwei Möglichkeiten:

  1. implementieren INotifyPropertyChanged in App.xaml.cs
  2. erstellen DependencyObject abgeleitete Klasse mit Ihren Eigenschaften auf, und setzen Sie es als Standard-Nur-Lese-Eigenschaft deine App Die Eigenschaften können dann erfolgreich durch "Punktieren" mit ihnen verbunden werden. heißt, wenn Ihre neue Eigenschaft Properties aufgerufen wird, können Sie wie so binden:
<TextBlock Text="{Binding Properties.Temp}" /> 

Wenn die Eigenschaft das Ziel einer Bindung, sein muss, dann Option # 2 ist die beste Wahl.

+0

Richtig raten! Option-2 ist, was ich gesucht habe. Es half ... Danke! – Vijay

1

Sie Klasse, die Abhängigkeitseigenschaften enthält, muss von DependencyObject erben.

+0

So kann ich keine Abhängigkeitseigenschaft in App.xaml.cs haben. – Vijay

+0

Sie können eine Hilfsklasse hinzufügen, die von DepObj als Eigenschaft Ihrer App-Klasse erbt. –

Verwandte Themen