5

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

4

2 回答 2

4

您的点击处理程序需要遵守事件处理程序签名。如果您想让该处理程序成为您的 WriteChar 的简单包装器,那很好。更多信息在这里:http: //msdn.microsoft.com/en-us/library/bb531289 (v=vs.90).aspx

于 2013-06-04T18:48:32.750 回答
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 中命令的更多信息。

当然,如果您希望按钮始终使用相同的参数执行代码,那么从按钮传递参数没有任何意义,这些参数可以硬编码到处理程序中:

<Button Click="Button_Click" />

private void Button_Click(object sender, EventArgs e)
{
    WriteChar("a", "A");
}
于 2013-06-04T18:59:33.157 回答