Xaml 使用viewmodel控制按钮单击
我试图通过viewmodel(MVVM)控制按钮的点击。我使用了以下代码来创建命令Xaml 使用viewmodel控制按钮单击,xaml,click,command,mvvm-light,Xaml,Click,Command,Mvvm Light,我试图通过viewmodel(MVVM)控制按钮的点击。我使用了以下代码来创建命令 <Button x:Name="GetData" Content="Get Data" Margin="8,8,223,0" VerticalAlignment="Top"> <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <cmd:EventToC
<Button x:Name="GetData" Content="Get Data" Margin="8,8,223,0" VerticalAlignment="Top">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cmd:EventToCommand Command="GetData_Click"></cmd:EventToCommand>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
单击的事件应返回人员列表
有谁能为我提供“如何在viewmodel中创建命令”的解决方案吗?请提供一个示例代码
Thanx提前..如果在视图后面有一个ViewModel作为DataContext,并且在ViewModel上有一个名为GetData_的命令,请单击,然后执行以下操作:
<Button Command="{Binding Path=GetData_Click"}>
其中GetData是一个函数。可以找到简单的DelegateCommand实现 如果在视图后面有一个ViewModel作为DataContext,并且在ViewModel上有一个名为GetData_的命令,请单击以下命令:
<Button Command="{Binding Path=GetData_Click"}>
其中GetData是一个函数。可以找到简单的DelegateCommand实现 在viewmodel中,您可以编写命令(也可以使用MVVM Light Toolkit) 在视图中,将EventToCommand更改为:
<cmd:EventToCommand Command={Binding GetDataCommand} />
在viewmodel中,您可以编写命令(也可以使用MVVM Light Toolkit) 在视图中,将EventToCommand更改为:
<cmd:EventToCommand Command={Binding GetDataCommand} />
如果您使用的是MVVM light,则可以执行以下类似操作:
private RelayCommand _getData_Click = null;
public RelayCommand GetData_Click
{
get
{
return _getData_Click ?? _getData_Click = new RelayCommand(
() =>
{
// Get Person List
});
}
}
上面有一个例子
更新
您可能会遇到错误,因为您需要使用数据绑定来设置命令,请重试
<Button x:Name="GetData" Content="Get Data" Margin="8,8,223,0" VerticalAlignment="Top" Command="{Binding Path=GetData_Click}"/>
或者将EventToCommand声明更改为:
<cmd:EventToCommand Command={Binding GetDataCommand} />
如果您已将ViewModel设置为DataContext,则应该可以使用该选项。如果您使用MVVM light,则可以执行以下类似操作:
private RelayCommand _getData_Click = null;
public RelayCommand GetData_Click
{
get
{
return _getData_Click ?? _getData_Click = new RelayCommand(
() =>
{
// Get Person List
});
}
}
上面有一个例子
更新
您可能会遇到错误,因为您需要使用数据绑定来设置命令,请重试
<Button x:Name="GetData" Content="Get Data" Margin="8,8,223,0" VerticalAlignment="Top" Command="{Binding Path=GetData_Click}"/>
或者将EventToCommand声明更改为:
<cmd:EventToCommand Command={Binding GetDataCommand} />
如果您已将ViewModel设置为DataContext,则应该可以使用该方法。我尝试了上述解决方案,但现在出现以下异常:[AG\u E\u PARSER\u BAD\u PROPERTY\u VALUE]。。我缺少一些参数吗?更新答案,如果你在谷歌上搜索该错误,你会发现它与你的XAML有关。我尝试了谷歌上的答案,但不起作用。我知道可能需要eventarguments,但我知道在哪里包含它。。有什么帮助吗?我修复了异常。但现在的问题是,我得到的个人列表没有绑定到listbox。。有什么解决办法吗?正在填充个人列表吗?如果它没有显示在列表框中,则可能是您的数据绑定。我尝试了上述解决方案,但现在出现以下异常:[AG\u E\u PARSER\u BAD\u PROPERTY\u VALUE]。。我缺少一些参数吗?更新答案,如果你在谷歌上搜索该错误,你会发现它与你的XAML有关。我尝试了谷歌上的答案,但不起作用。我知道可能需要eventarguments,但我知道在哪里包含它。。有什么帮助吗?我修复了异常。但现在的问题是,我得到的个人列表没有绑定到listbox。。有什么解决办法吗?正在填充个人列表吗?如果它没有显示在列表框中,则可能是您的数据绑定。