如何在XAML中调用带参数的函数?

时间:2013-06-04 18:44:13

标签: c# xaml blend

我正在使用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中写这个?

2 个答案:

答案 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");
}