2010-07-07 100 views
0

我會首先說我試圖嚴格遵循MVVM,所以我只想使用Binding來完成以下操作。WPF共享DataGrid列設置(模板?樣式?)

我有多個DataGrid顯示相同數據類型的不同ObservableCollections。我怎樣才能定義哪些列及其綁定路徑將顯示在所有DataGrid上?

它似乎不能爲DataGrid.Column設置樣式。目標是所有的DataGrid都顯示相同的DataGrid.Column信息,但只需維護它的一個副本。

任何想法?

回答

1

將您的DataGrid定義爲資源。

然後,您可以在「參考」的數據網格中的窗口或應用程序的多個領域是這樣的:

<ContentControl Content="{StaticResource myDataGrid}"></ContentControl> 

您可以更改ContentControl中的DataContext的,這樣的DataGrid中將會被綁定到不同的數據源。

+0

只是爲了澄清,在上面的示例代碼中,我假設DataGrid有一個'myDataGrid'鍵。 – ChrisNel52 2010-07-07 15:12:34

+0

如何設置DataGrid之間可能不同的參數,如HeadersVisibility? – bufferz 2010-07-07 18:04:31

+0

選項1:如果HeadersVisibility值由綁定屬性確定,則將HeadersVisibility綁定到適當的屬性,並使用ValueConverter將屬性值轉換爲正確的HeadersVisiblity值。 選項2:創建一個UserControl,而不是將DataGrid定義爲資源。在你的UserControl中,定義你的DataGrid和一些依賴屬性,這些屬性可以用來設置正確的HeadersVisibility值。 – ChrisNel52 2010-07-07 18:31:34