Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在遵循MVVM结构的WPF中,如何绑定到方法而不是变量?_C#_Wpf_Mvvm - Fatal编程技术网

C# 在遵循MVVM结构的WPF中,如何绑定到方法而不是变量?

C# 在遵循MVVM结构的WPF中,如何绑定到方法而不是变量?,c#,wpf,mvvm,C#,Wpf,Mvvm,在使用MVVM结构执行WPF时,我总是在类的变量上使用Getter Setter将视图绑定到ViewModel。 我是否可以直接绑定到ViewModel的方法 (请确保在我使用MVVM时,我不希望看到视图中的代码隐藏,例如方法(发送方s,…)我不清楚您的需求,但是为什么不创建一个属性并在您在WPF中查找的get属性上调用该方法呢。这只是一个命令模式,它允许您将“方法”转换为对象,从而能够将其绑定为普通变量 另一方面,如果您想“绑定到方法”只是为了显示它的数据,那么创建属性非常简单。我认为这种方法

在使用MVVM结构执行WPF时,我总是在类的变量上使用Getter Setter将视图绑定到ViewModel。 我是否可以直接绑定到ViewModel的方法


(请确保在我使用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>