2010-03-02 78 views
1

有沒有辦法將整個DataGrid標記爲單向綁定?WPF:單向綁定整個DataGrid

+1

你爲什麼要這樣做? –

+0

當然,要以完全非標準的方式表現出來!這是良好可用性的關鍵,對吧? ;) –

+1

因爲我綁定了一組只讀屬性,而且我厭倦了寫「Mode = OneWay」。 –

回答

1

您可以創建一個新類,例如繼承綁定的OneWayExtension。

public class OneWayExtension : Binding 
{ 
    public OneWayExtension() 
     : base() 
    { 
     Initialize(); 
    } 

    public OneWayExtension(string path) 
     : base(path) 
    { 
     Initialize(); 
    } 

    private void Initialize() 
    { 
     this.Source = YourSourceOrMakeThisAParameter; 
     this.Mode = BindingMode.OneWay; 
    } 
} 

然後,您可以

{local:OneWay PathOfData} 
+0

有趣。看起來我可以用這個做很多很酷的事情。 –

+1

我覺得這是設置用戶和應用程序設置的好方法。 一個「問題」是XAML編輯器會抱怨它無法找到帶有一個參數的構造函數。 MS已經解決了這個問題。您可以通過將課程移到解決方案中的單獨項目來「解決」它,對於設置不起作用,但對於您的情況可能。或者,如果你不介意警告(仍然編譯顯然),忽略它;) –

+0

這是一個明顯的答案,我可以擔心這個問題六個月,永遠找不到。 –

1

調用這個我知道這已經回答了,但你不能只設置綁定Mode上DataGrid的ItemsSource屬性OneWay