我正在使用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编写?
您的点击处理程序需要遵守事件处理程序签名。如果要使该处理程序成为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 here中命令的更多信息。
当然,如果您希望按钮始终使用相同的参数执行代码,则从按钮传递参数没有任何意义,这些参数可以硬编码到处理程序中:
<Button Click="Button_Click" />
private void Button_Click(object sender, EventArgs e)
{
WriteChar("a", "A");
}