【发布时间】:2019-04-07 10:54:31
【问题描述】:
我正在为我有一个文本框之类的东西而苦苦挣扎
<TextBox Name="FilterInputText" Visibility="{Binding VisibiltyAttr}" Width="500" Height="30" Text="{Binding InputText}" HorizontalAlignment="Left" Margin="5">
<TextBox.InputBindings>
<KeyBinding Command="{Binding EnterCommand}" Key="Enter" />
<KeyBinding Command="{Binding DownSelectionCommand}" Key="Down" />
</TextBox.InputBindings>
<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyUp">
<i:InvokeCommandAction Command="{Binding CompleteCommand}" CommandParameter="{Binding Text, ElementName=InputText}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
我在这里触发了一个事件,在文本框中输入了“KeyUp”事件。现在我正在为自动完成文本框工作,所以我提出了在工作正常的列表框中输入的建议。所以我需要绑定向下键以与此文本框绑定,以便在显示建议后用户可以按下向下键并从那里选择他想要的选项。 它可以很好地用于向下键的键绑定。
问题在于事件 keyup,因为在文本框内按下任何键都会触发此事件。现在我将文本框值作为命令参数发送,但我还需要使用 comamnd 参数发送 keyeventargs,这样我就可以找出按下了哪个键,当出现下键时我不会进一步执行该方法。
那么我如何将文本框值和 keyeventargs 作为命令参数传递,我严格遵循 mvvm 模式。
【问题讨论】:
-
是否需要将
TextBox值作为命令参数传递?您不是已经在您的视图模型中将它作为InputText了吗?
标签: wpf mvvm prism keyboard-events