如何將Checkbox.checked路由事件轉換爲MVVM模式的命令?將RoutedEvent轉換爲WPF中MVVM模式的命令
參考 - 考慮按鈕點擊路由事件,當我們爲button指定命令時,button.click事件被視爲命令。它執行相應的命令。
我google了它,我得到了與EventBehaviourFactory的解決方案。沒有使用EventBehaiourFactory可能嗎?
如何將Checkbox.checked路由事件轉換爲MVVM模式的命令?將RoutedEvent轉換爲WPF中MVVM模式的命令
參考 - 考慮按鈕點擊路由事件,當我們爲button指定命令時,button.click事件被視爲命令。它執行相應的命令。
我google了它,我得到了與EventBehaviourFactory的解決方案。沒有使用EventBehaiourFactory可能嗎?
這是WPF中的常見要求。最廣泛使用的解決方案是使用Interactivity
從Blend SDK:
此的xmlns命名空間添加到您的XAML:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
然後,你可以這樣做:
<CheckBox>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Checked">
<i:InvokeCommandAction Command="{Binding MyCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</CheckBox>
當然,你需要添加System.Windows.Interactivity.dll您的項目位於(對我而言至少):C:\Program Files (x86)\Microsoft SDKs\Expression\Blend 3\Interactivity\Libraries\WPF\System.Windows.Interactivity.dll
如果這解決了您的問題,請接受答案。 –
嘿謝謝。它真的很有幫助。但如果沒有Blend那麼該如何解決這個問題。 – rohanw
@rohanw:您可以下載包含此程序集的[Blend SDK](http://www.microsoft.com/download/en/details.aspx?id=10801)。 –
你想使用命令instaad of event或attach命令來處理事件嗎? – sll
爲什麼你不能綁定複選框的IsChecked屬性TwoWay。 –