我有一个文本框,想要传递在命令中输入的文本。我做了以下事情:
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。 这有什么不对?
答案 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>