2010-11-18 2 views
2

gebunden sein finde ich, dass wenn ich eine Klasse ändern vonStandardwert für die Eigenschaft ‚Optionen‘ kann nicht auf einen bestimmten Thread

public class MarkdownEditorOptions : ObservableObject 

zu

public class MarkdownEditorOptions : INotifyPropertyChanged, DependencyObject 

als ich Abhängigkeitseigenschaften verwenden wollte, Ich erhalte den Fehler

Der Standardwert für die Eigenschaft 'Options' kann nicht an einen bestimmten Thread gebunden werden. ... \ Views \ ShellView.xaml

Optionen als Abhängigkeitseigenschaft erklärt auf ShellViewModel

public MarkdownEditorOptions Options 
{ 
    get { return (MarkdownEditorOptions)GetValue(OptionsProperty); } 
    set { SetValue(OptionsProperty, value); } 
} 

public static readonly DependencyProperty OptionsProperty = 
    DependencyProperty.Register("Options", typeof(MarkdownEditorOptions), typeof(ShellViewModel), new UIPropertyMetadata(new MarkdownEditorOptions())); 

, was ist falsch?

Antwort

2

Sehen Sie diese Fragen

Ihre Abhängigkeitseigenschaft ist nicht Thread-sicher, was bedeutet, dass es nicht von System.Windows.Freezable nicht erben.
Ändern Sie DependencyObject in Freezable und es funktioniert, da Freezable von DependencyObject abgeleitet ist.

+0

Sollte ich 'Freezable' dann immer' DependencyObject' verwenden? Oder sind damit einige Nachteile verbunden? –

+2

Hey Ich fand, dass es ein Read Only-Objekt ist, was ist, wenn ich die Abhängigkeitseigenschaften darin ändern muss? –

Verwandte Themen