C# 在遵循MVVM结构的WPF中,如何绑定到方法而不是变量?
在使用MVVM结构执行WPF时,我总是在类的变量上使用Getter Setter将视图绑定到ViewModel。 我是否可以直接绑定到ViewModel的方法C# 在遵循MVVM结构的WPF中,如何绑定到方法而不是变量?,c#,wpf,mvvm,C#,Wpf,Mvvm,在使用MVVM结构执行WPF时,我总是在类的变量上使用Getter Setter将视图绑定到ViewModel。 我是否可以直接绑定到ViewModel的方法 (请确保在我使用MVVM时,我不希望看到视图中的代码隐藏,例如方法(发送方s,…)我不清楚您的需求,但是为什么不创建一个属性并在您在WPF中查找的get属性上调用该方法呢。这只是一个命令模式,它允许您将“方法”转换为对象,从而能够将其绑定为普通变量 另一方面,如果您想“绑定到方法”只是为了显示它的数据,那么创建属性非常简单。我认为这种方法
(请确保在我使用MVVM时,我不希望看到视图中的代码隐藏,例如方法(发送方s,…)我不清楚您的需求,但是为什么不创建一个属性并在您在WPF中查找的get属性上调用该方法呢。这只是一个命令模式,它允许您将“方法”转换为对象,从而能够将其绑定为普通变量
另一方面,如果您想“绑定到方法”只是为了显示它的数据,那么创建属性非常简单。我认为这种方法没有问题。您可以使用交互触发器实现这一点,它允许您将任何事件绑定到viewmodel中的方法
xmlns:i=”http://schemas.microsoft.com/expression/2010/interactivity"
你想要这个做什么?@HighCore:因为我觉得没有必要创建变量来只调用方法。可能的其他重复的重复:因为我觉得没有必要创建变量来只调用方法。,但不确定它是否会对您有所帮助您是对的,但命令仅限于按钮之类的组件。@Pratik您是否可以指定更多您想要绑定到的内容?你到底有什么问题?我想绑定TextBox的LostFocus事件。它用于验证文本框的内容。@Pratik当然,您不必绑定methode,因为您已经将(文本框的)值绑定到prop。所以你可以从道具设定器调用methode。在使用lostfocus的情况下,可以尝试somthing@Pratik将文本绑定到属性,并将绑定设置为在lostfocus
上更新。使用LostFocus
事件是完全没有必要的。给出了编译错误,如“Interection中找不到触发器”以及“Invoke command不存在于命名空间中”从Sry下载dll实际上我很忙,我得到你的答复太晚了。
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
<TextBox Margin="0,287,0,0">
<i:Interaction.Triggers>
<i:EventTrigger EventName="LostFocus">
<i:InvokeCommandAction Command="{Binding LostFocusCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>