2010-11-18 68 views
2

我發現,當我改變從默認值無法綁定到特定的線程

public class MarkdownEditorOptions : ObservableObject 

一類

public class MarkdownEditorOptions : INotifyPropertyChanged, DependencyObject 

,因爲我想用依賴屬性,我得到錯誤

'選項'屬性的默認值不能綁定到特定的線程。 ... \查看\ ShellView.xaml

選項被宣佈爲在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())); 

什麼錯一個依賴屬性?

回答

2

看到這些問題

你的依賴屬性不是線程安全的,這意味着它不會從System.Windows.Freezable繼承。
將DependencyObject更改爲Freezable,因爲Freezable將從DependencyObject派生,所以它將起作用。

+0

那麼我應該總是在'DependencyObject'上面使用'Freezable'嗎?還是有一些相關的缺點? – 2010-11-19 01:13:02

+2

嘿,我發現它是一個只讀對象,如果我需要修改它的依賴屬性呢? – 2010-11-19 01:16:19