我正在使用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">
这很好用。但是,我想将其更改为使用参数WriteChar
和"a"
调用函数"A"
,以便调用以下C#函数:
private void writeChar(string myCharCaps, string myCharLower)
我如何在XAML中写这个?
答案 0 :(得分:4)
您的点击处理程序需要遵守事件处理程序签名。如果你想让这个处理程序成为WriteChar的简单包装器,那很好。更多信息:http://msdn.microsoft.com/en-us/library/bb531289(v=vs.90).aspx
答案 1 :(得分:2)
您可以使用命令和命令参数代替事件处理程序:
<强>视图模型:强>
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 here中阅读有关命令的更多信息。
当然,如果您希望按钮始终使用相同的参数执行代码,那么从按钮传递参数没有任何意义,并且这些参数可以硬编码到处理程序中:
<Button Click="Button_Click" />
private void Button_Click(object sender, EventArgs e)
{
WriteChar("a", "A");
}