2011-09-02 68 views
2

我有一個數據網格,並且我從ViewModel動態添加列到這個網格。用戶有一個設置對話框,他們可以管理哪些列出現在此DataGrid中。我遇到的問題是,我不知道如何在我的ViewModel中創建的DataGridColumns之一上設置HeaderStyle。在Silverlight中,如何設置動態DataGridColumn的HeaderStyle

這最基本的版本將能夠添加一個工具提示到這些動態列的DataGridColumnHeader。請注意,這些列由於其動態性質而未在XAML中定義。大多數列是數據驅動的,因此在編譯時不知道。

獎勵積分用於示出如何將按鈕在列標題添加到該風格,以及如何設置其點擊或命令屬性,這樣我可以從網格中刪除列(設想的x圖像上的按鈕, 。當我點擊這個我想刪除列)

回答

1

可以在這樣的代碼分配HeaderStyle: -

 Style headerStyle = new Style(typeof(DataGridColumnHeader)); 
     headerStyle.Setters.Add(new Setter(ToolTipService.ToolTipProperty, "Hello World")); 

     yourDynamicColumn.HeaderStyle = headerStyle; 
+0

你知道的,我可以設置爲刪除按鈕什麼辦法?實際上,我發現了用於設置工具提示的這種方法,但它不支持將UI元素添加到列標題中。 – Boushley

+0

@Boushley:它應該更難。一種方法是完全替換DataGridColumnHeader的模板。但即便如此,您仍然必須找到一種方法將按鈕點擊綁定到您想要執行的操作。 – AnthonyWJones

+0

對,這似乎是我發現的。看起來我必須跳過很多箍環才能在那裏找到一個按鈕......並且當我將它綁定到正確的東西時並不會真正起作用:/ – Boushley

相關問題