如何在WPF中失去焦点时激发文本框命令
本文关键字:文本 命令 焦点 WPF 失去 | 更新日期: 2023-09-27 18:24:09
如果用户按下Enter,以下模板工作正常,尽管我希望在TextBox
失去焦点时也激发该命令。我该怎么做?
以下是我的TextBox
模板
<DataTemplate x:Key="PhantomNameEditTemplate">
<TextBox Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}">
<TextBox.InputBindings>
<KeyBinding Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}, Path=DataContext.RenameCommand}" CommandParameter="{Binding}" Key="Enter" />
</TextBox.InputBindings>
</TextBox>
</DataTemplate>
如果不使用任何MVVM框架,则可以在事件触发时使用System.Windows.Interactivity
中的InvokeCommandAction
来执行命令
<TextBox ...>
<i:Interaction.Triggers>
<i:EventTrigger EventName="LostFocus">
<i:InvokeCommandAction
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}, Path=DataContext.RenameCommand}"
CommandParameter="{Binding}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
您需要添加对System.Windows.Interactivity
的引用,并在XAML中添加命名空间:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"