- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
没有错误。我正在尝试学习 MVVM。设置很简单。单击按钮时我没有得到任何输出。 Xaml 应该没问题,因为我已经通过将行为拖动到按钮来在 Blend 中生成交互部分。注意:我打算使用方法,而不是命令,因为命令仅涵盖单击,但不包括 DoubleClick。
<Window
x:Class="MVVM_1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:local="clr-namespace:MVVM_1"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="525"
Height="350"
mc:Ignorable="d"
>
<Window.DataContext>
<local:ViewModel/>
</Window.DataContext>
<Grid>
<Button x:Name="button"
Width="75"
Margin="198,168,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Content="TestMethod">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown" SourceName="button">
<ei:CallMethodAction MethodName="MethodTesting"
TargetObject="{Binding}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</Grid>
using System.Windows;
namespace MVVM_1
{
public class ViewModel
{
public static void MethodTesting()
{
MessageBox.Show("Success!");
}
}
}
最佳答案
您需要使用命令将控件绑定(bind)到单击事件。
MVVM - Commands, RelayCommands and EventToCommand
代替:
public static void MethodTesting()
{
MessageBox.Show("Success!");
}
public ICommand ButtonClickCommand
{
get { return new DelegateCommand<object>(FuncToCall, FuncToEvaluate);}
}
private void FuncToCall(object context)
{
//this is called when the button is clicked
MessageBox.Show("Success!");
}
private bool FuncToEvaluate(object context)
{
//this is called to evaluate whether FuncToCall can be called
//for example you can return true or false based on some validation logic
return true;
}
关于c# - CallMethodAction 绑定(bind)到 Button 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45301163/
我正在通过一个新的(小)项目学习 MVVM 模式,我有一个关于在我们的 Controller 上调用操作的方法的问题: 我看过很多教程,他们告诉我们使用 Command,暗示声明一个 RelayCom
我在给定代码的 View 部分使用了事件触发器,如下所示。几乎所有绑定(bind)都适用于 ViewModel 类 - MainWindowViewModel,但对于方法“CustomRibbonWi
有没有办法将一个参数(或多个参数)传递给 CallMethodAction 行为? 最佳答案 尝试使用 InvokeCommandAction 命令而不是使用 CallMethodAction:
我有一个列表选择器元素,我需要在列表选择器“关闭”或返回其正常状态时运行一个方法。我的 xaml 看起来像这样: 现在我需要从后面的代码中调用一个方法。我想搜索的所有内容的前 3 页都有紫
没有错误。我正在尝试学习 MVVM。设置很简单。单击按钮时我没有得到任何输出。 Xaml 应该没问题,因为我已经通过将行为拖动到按钮来在 Blend 中生成交互部分。注意:我打算使用方法,而不是命令,
我正在创建一个 UWP 应用,到目前为止,我一直在使用 CallMethodAction 从 ViewModel 调用方法,并且运行良好。 但是现在,我尝试对 ListView 内的某些按钮使用相同的
我正在尝试使用交互,但我无法在 ViewModel 的方法中编写有序参数。我使用的是一个 ListBox,它在复选框和另一个控件中包含项目。因此,我尝试在我的用户控件中使用 CallMathodAct
我是一名优秀的程序员,十分优秀!