2010-11-18 211 views
0

我只是想知道如何爲同一列分配不同的單元格樣式?單元格樣式可能是組合框或文本框。 上傳的圖片。它真的很難嗎?WPF DataGrid的單元格樣式 - 同一列中的不同單元格樣式

我想在數據網格中顯示一個表。第一列應該是表字段的名稱,第二列應該是該列的值。 現在,如果第一列單元格數據類型爲var char,則第二列單元格應顯示文本框。 如果第一列單元格數據類型爲int,則第二列單元格應顯示組合框。

DataGrid Cell Style

感謝, ñ化身

alt text

回答

1

,你可以:

  • 派生從DataGridBoundColumn(或其衍生物之一)並覆蓋

    保護覆蓋FrameworkElement的GenerateElement(DataGridCell細胞,對象的DataItem)

方法。此方法創建出現在每個單元格中的項目。作爲參數傳遞的dataItem是該行中的項目。麻煩的是,要決定使用什麼項目來顯示當前單元格值,您將必須執行binding manually以使項目顯示在單元格中,然後查看要返回的UI控件。

  • 使用模板列並在單元格模板中使用數據觸發器在您希望顯示的ui元素中進行交換。
+0

謝謝阿蘭,我正在爲這個理論做準備。將更新你 – 2010-11-19 17:11:37

+0

嘿阿蘭,我試過了,它正在工作。在綁定中遇到一些問題,但這不是一項艱鉅的任務。謝謝你的幫助。 – 2011-01-18 15:49:46

0

當問這個問題時,請記住,有兩種不同類型的WPF DataGrid中的。在使用.NET Framework 3.5 SP1的WPFToolkit中的CodePlex上發佈的一個。而較新的WPF DataGrid作爲使用.NET Framework 4.0的WP4中的內置控件發佈。

根據您決定使用哪個數據網格,您的解決方案可能會有所不同,並且您可能會發現其中一個比另一個更好。

這就是說,我發現了一篇關於C# Corner的文章,它描述了當單元處於編輯模式時如何在單元中顯示組合框。這可能會幫助你。如果您從這裏開始,您可能會發現可以擴展此代碼示例以滿足您的需求。在編輯時需要使用文本框而不是組合框的情況下,可以將組合框設置爲允許輸入新值,實質上允許用戶在他們想要的項目不可用時在文本框中鍵入值。不知道這是你想要的,但我至少想給你一些東西來咀嚼。

祝你好運,

+0

我想上傳圖片我的意思,但不成功。讓我編輯我的問題,以更具體。 – 2010-11-18 19:23:30