如何使用带参数的函数作为事件处理程序
本文关键字:事件处理 程序 函数 何使用 参数 | 更新日期: 2023-09-27 18:16:49
我使用Blend(我是非常新的)来创建XAML。我有一行代码调用下面的函数writeC
:
<Button x:Name="key_c" Content="c" HorizontalAlignment="Left" Height="60"
Margin="243,188.667,0,0" VerticalAlignment="Top" Width="60" FontWeight="Bold"
FontFamily="Century Gothic" FontSize="21.333" Foreground="Black"
Click="writeC">
这很好。但是,我想将其更改为使用参数"a"
和"A"
调用函数WriteChar
,以便它调用以下c#函数:
private void writeChar(string myCharCaps, string myCharLower)
我如何在XAML中编写这个?
单击处理程序需要遵守事件处理程序签名。如果您想让该处理程序成为WriteChar的简单包装器,那也可以。更多信息在这里:http://msdn.microsoft.com/en-us/library/bb531289(v=vs.90).aspx
您可以使用命令和命令参数来代替事件处理程序:
ViewModel:
public ICommand MyCommand { get; private set; }
// ViewModel constructor
public ViewModel()
{
// Instead of object, you can choose the parameter type you want to pass.
MyCommand = new DelegateCommand<object>(MyCommandHandler);
}
public void MyCommandHandler(object parameter)
{
// Do stuff with parameter
}
XAML:
<Button Command="{Binding MyCommand}" CommandParameter="..." />
您可以在这里阅读更多关于WPF中的命令。
当然,如果您希望按钮总是使用相同的参数执行代码,那么从按钮传递参数就没有任何意义,这些参数可以硬编码到处理程序中:<Button Click="Button_Click" />
private void Button_Click(object sender, EventArgs e)
{
WriteChar("a", "A");
}