什么是事件綁定?
首先說到綁定,一般是在WPF 中常見的,因為WPF中有一個比較好用的框架叫做
MVVM
所以View層的按鈕等元件的的動作都是需要和后臺ViewModel 中的函數(shù)進行綁定的。
如 我們最常見的按鈕的command 綁定
Command="{Binding Btncommand}" CommandParameter="write"
這里面的command 是命令,不是事件
如果點擊圖片,或者按鈕抬起來的時候需要觸發(fā)一些命令的時候就需要使用事件綁定。
為什么要用到事件綁定?
但是可以想一下,如果想說按鈕彈起時有另外一個動作要執(zhí)行,這個時候需要怎么辦?
答: 使用事件綁定
當然在winform 中由于事件就是寫在后臺的,所以直接寫不需要使用綁定,但是WPF 如果使用MVVM 就不可以這樣了,否則就會有耦合了;
事件綁定的步驟
事件綁定的實現(xiàn)比較簡單,但是目前在網(wǎng)上搜索的資料都是比較舊的實現(xiàn)方式,而且有時后版本不兼容,下面介紹目前新版本的實現(xiàn)方式:
step1:在nuget 管理中增加 Microsoft.Xaml.Interactions 工具
step2:
然后再xmal 中引用該命名空間
? ? ? xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
step3:
事件綁定的寫法如下:
<Button Content="xxx" Width="120" Height="40" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<i:InvokeCommandAction Command="{Binding Btncommand}" CommandParameter="read" />
</i:EventTrigger>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding Btncommand}" CommandParameter="read" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
這樣便實現(xiàn)了事件的綁定
當然也會遇見很多事件失效的問題如:
就是 關(guān)于MouseLeftButtonDown事件失效的問題
不過可以參考這個文章:文章來源:http://www.zghlxwxcb.cn/news/detail-439906.html
WPF高級教程(八)專題:事件_白話屋-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-439906.html
到了這里,關(guān)于WPF 如何實現(xiàn)事件綁定 (MVVM)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!