从 View 到 ViewModel 的 WPF 事件绑定?
将 View 中的 WPF 事件绑定到 ViewModel 的最佳方法是什么?
我的视图中有一个放置事件,但我想将其替换为由于绑定而导致的 ViewModel。
找到了几个解决方案,但没有一个达到我的预期。
查看代码:
<TextBox
AllowDrop="True"
PreviewDrop="email_Drop" />
What is the best way to bind a WPF event in the View to the ViewModel?
I have a drop event in my View but I want to replace it to the ViewModel due binding.
Found several solutions but none of them did what I expected.
View code:
<TextBox
AllowDrop="True"
PreviewDrop="email_Drop" />
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在 MVVM 和 XAML 中处理事件的一种方法是使用 Blend Interactivity 功能。此命名空间包含 InvokeCommandAction 和 CallMethodAction 类。
InvokeCommandAction 允许您将任何事件绑定到视图模型命令,而 CallMethodAction 允许您将任何事件绑定到视图模型方法。
例如,如果要将 Button 的 DoubleClick 事件绑定到视图模型命令,您可以这样做:
并声明此命名空间:
您需要在项目中引用它,只需安装 Expression Blend 或 Expression Blend SDK。
One way to handle events in MVVM and XAML is to use the Blend Interactivity features. This namespace contains the InvokeCommandAction and the CallMethodAction classes.
InvokeCommandAction lets you bind any event to a view-model command while CallMethodAction lets you bind any event to a view-model method.
For example if you want to bind the DoubleClick event of a Button to a view-model command you would do like this:
And declaring this namespace:
All you need to reference it in your projects is to install Expression Blend or the Expression Blend SDK.
一种方法是将事件转换为命令,然后将其绑定到演示者命令,即通过定义事件行为。
请参阅此,WPF 事件绑定到 ViewModel(对于非命令类) )
Well one way to do is to convert that event into a command and then bind it to presenter command, i.e. by defining event behaviour.
See this, WPF Event Binding to ViewModel (for non-Command classes)
Command
{eb:EventBinding} (查找 Command 的简单命名模式)
{eb:EventBinding Command=CommandName}
CommandParameter
$e (EventAgrs)
$this 或 $this.Property
字符串
https://github.com/JonghoL/EventBindingMarkup
Command
{eb:EventBinding} (Simple naming pattern to find Command)
{eb:EventBinding Command=CommandName}
CommandParameter
$e (EventAgrs)
$this or $this.Property
string
https://github.com/JonghoL/EventBindingMarkup
我从绑定上下文中获取视图模型并从那里激活我的视图模型方法
I get the viewmodel from the bindingcontext and activate my viewmodel method from there