我有这个像魅力一样工作的 XAML 代码:
<TextBox Text="{Binding MyTextProperty, UpdateSourceTrigger=PropertyChanged}">
<TextBox.InputBindings>
<KeyBinding Command="{Binding MyOwnCommand}" CommandParameter="{Binding MyTextProperty}" Key="Enter" />
</TextBox.InputBindings>
</TextBox>
当我按下回车键时,我将MyTextProperty
其作为参数传递给。MyOwnCommand
我不希望MyTextProperty
每次输入字母时都更新(因为它有一些相关的逻辑),但我确实希望它在我完成输入后执行(不按回车键或失去焦点)。理想的解决方案是:
<TextBox Text="{Binding MyTextProperty, UpdateSourceTrigger=PropertyChanged, Delay=400}">
<TextBox.InputBindings>
<KeyBinding Command="{Binding MyOwnCommand}" CommandParameter="{Binding MyTextProperty}" Key="Enter" />
</TextBox.InputBindings>
</TextBox>
这里的重点是"Delay=400"
参数。它等到我完成输入然后更新MyTextProperty
。
但此时我发现的问题是,如果我输入一些内容并立即按回车,MyOwnCommand
会调用但MyTextProperty
尚未更新(它将在 400 毫秒后更新)。
我试图在 中添加相同的延迟CommandParameter="{Binding MyTextProperty, Delay=400}"
,但它不起作用。
更新后传递 CommandParameter 的正确方法是MyTextProperty
什么?