KeyTrigger传递参数

时间:2013-09-03 07:27:56

标签: silverlight xaml mvvm triggers

我有一个文本框,想要传递在命令中输入的文本。我做了以下事情:

XAML:

<TextBox Margin="0" Grid.Row="2" TextWrapping="Wrap" >
            <i:Interaction.Triggers>
                <iex:KeyTrigger Key="Enter">
                    <i:InvokeCommandAction Command="{Binding TextBoxMessageCommand}"  CommandParameter="{Binding Path=Text, RelativeSource={RelativeSource Self}}"/>
                </iex:KeyTrigger>
            </i:Interaction.Triggers>
        </TextBox>

命令中的代码:

public override void Execute(object parameter)
    {
       string msg = parameter;

没关系。方法执行正常并且很好。但参数== null。 这有什么不对?

1 个答案:

答案 0 :(得分:1)

您应该尝试为TextBox命名并在命令中通过此名称引用它。自我不会在命令中起作用。

<TextBox x:Name="textBox" Margin="0" Grid.Row="2" TextWrapping="Wrap" >
        <i:Interaction.Triggers>
            <iex:KeyTrigger Key="Enter">
                <i:InvokeCommandAction Command="{Binding TextBoxMessageCommand}"  CommandParameter="{Binding Path=Text, ElementName=textbox}"/>
            </iex:KeyTrigger>
        </i:Interaction.Triggers>
</TextBox>