我正在使用MVVM模式。我有两个按钮。点击我需要确定点击了哪个按钮。我如何绑定XAMl中的按钮,以便我可以识别单击了哪个按钮。
答案 0 :(得分:1)
如果您确实使用MVVM,请将每个按钮的Command
绑定到视图模型中的相应ICommand
。它将是两个不同的命令,因此您不需要执行任何特殊操作来区分一个按钮与另一个按钮。
XAML:
<Button Content="FirstButton"
Command="{Binding Path=FirstCommand, Mode=OneTime}"/>
<Button Content="SecondButton"
Command="{Binding Path=SecondCommand, Mode=OneTime}"/>
查看 - 型号:
public sealed class ViewModel : INotifyPropertyChanged
{
// ...
public ICommand FirstCommand { get; }
public ICommand SecondCommand { get; }
// ...
}
答案 1 :(得分:1)
如果您想对多个按钮使用相同的Command
,则可以使用CommandParameter
。
<Button Content="buttonContent1" Command="{Binding ButtonClickCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=Content}"/>
在命令委托方法中,您可以使用以下内容:
private void ButtonClickCommandHandler(object parameter)
{
switch(parameter.ToString())
{
case buttonContent1:
...
case buttonContent2:
...
}
}
此处按钮由其内容标识,当然您可以将其更改为其他属性,例如Tag