2011-10-16 138 views
3

我正在WPF中編寫一個自定義控件,並且我有一些控件中的用戶可以調用的方法。自定義控件wpf,支持調用控件方法來支持MVVM模式

雖然它可以直接調用,由於來自用戶的請求,我想啓用控件的方法以MVVM方式調用。

經過研究,我認爲我必須在我的控制上實現ICommandSource。 MSDN有一個例子,但我發現它對我的情況過度設計(或者因爲我不瞭解它!)。 我只想讓我的消費者通過命令調用我的方法,而不是將其調用代碼放在視圖的代碼中。

請告訴一個簡單的示例代碼來實現這一點。謝謝。

回答

1

在Blend SDK中有一個行爲MethodInvoker(如果我的內存服務正確),它允許您綁定到一個方法。這樣你就不必實現ICommand。

0

如果您有權訪問.NET代碼(或者您可以通過download下載.NET源代碼),請查看MS如何使用ButtonBase進行操作。是的,引擎蓋下有很多代碼,但這是因爲如果要創建自定義控件,則應考慮RoutedEvents和Commands的兩種情況。