2009-06-04 134 views
0

我有興趣定製第三方控件(如Telerik的RadGridView)作爲獨立控件,例如在網格上方添加New Row和Delete Row按鈕,但仍支持XAML操作的內部控件的內部控件存在於我的控件所在的窗口(即窗口將其自己的樣式添加到網格列中)。封裝和自定義第三方WPF控件

有沒有辦法添加按鈕等與模板?樣式?

我目前的「解決方案」是從RadGridView繼承,但我堅持如何添加我需要的功能。

謝謝!

回答

1

我的建議是使用合成而不是繼承。

您可以創建自己的控件(UserControl應該做的工作)。然後,您可以定義佈局(可能在Grid面板中):頂部的按鈕,RadGridView在它們的下面等等。對於自定義列樣式,您可以使用DynamicResource技巧。使用DynamicResource設置要修改的列的樣式。這種方式將控制添加到邏輯(可視)樹時; WPF將遍歷控制樹並找到合適的資源。這樣在每個窗口/頁面資源中可以定義不同的資源。

我想到的另一個想法是,你可以提取按鈕作爲一個單獨的控制。他們將需要的唯一參考將是RadGridView並且您可以使用與元素名稱綁定來提供它。

1

我會去自定義UserControl路線而不是繼承路線。當你處理w /子類時,造型和主題奇怪地工作。除非您計劃複製和修改Telerik的ControlTemplates和DataTemplates,否則它會變得非常多。