2010-02-22 129 views
0

我創建了一個包含Button的WPF UserControl。我現在希望usercontrol的任何使用者都能夠在usercontrol上設置Command屬性,並將該命令分配給控件中的按鈕。即當按鈕被點擊時,它運行命令(在這種情況下是Prism DelegateCommand)。通過UserControl傳遞WPF按鈕命令

所以,我的用戶是這樣的:

<UserControl> 
    <Button ...> 
</UserControl> 

和我消費,我想是這樣的:

<controls:ThreeStateImageButtonControl 
    Command="..." /> 
+0

對不起拉斯,剛剛更新! – devdigital 2010-02-23 10:08:23

回答

3

你需要在你的控制創建命令依賴項屬性,然後創建該按鈕的Click事件的事件處理程序來執行Command。然後用戶可以綁定到Command。也許Web教程或文檔可以幫助你做到這一點?也許谷歌「用戶控制教程的WPF依賴屬性」或一些這樣的事情。

但是,我不確定你做的是對的。如果你的用戶控件裏面只有一個Button,你可能想要考慮一個繼承自Button的自定義控件;實現會更簡單,用戶可以以普通的方式使用Click事件。在許多地方,Web上也有WPF自定義控件教程。

順便說一句,你的財產實際上不會被稱爲命令,對吧?

4

來吧人!這是WPF。這個想法是遠離用戶控件和自定義控件,這是舊的Windows Forms做事的方式。這裏要做的最好的事情就是使用WPF模板和WPF的無望特性來使用容器和您喜歡的行爲來設置控件的樣式。然後,您不必擔心通過點擊或命令功能,因爲它們已經在那裏。而不是將控件包裝在其他元素中,並將其設置爲用戶控件,只需使用其他元素進行樣式控制即可。

+0

謝謝!我想這是一種值得考慮的方法。我想在這種情況下,我會直接從Button繼承控件。該控件可能稍後會有自定義命令等。如果我將它作爲顯式樣式實現,則必須爲Button的每個實例重新定義命令。 – devdigital 2010-02-23 10:15:16

+0

你是100%正確! – Raffaeu 2011-01-17 01:48:57