【发布时间】:2015-01-18 08:11:44
【问题描述】:
在我看来,我尝试通过以下 XAML 将事件绑定到 Enter 键:
<TextBox x:Name="txtFields" Text="{Binding FieldsTextProperty, UpdateSourceTrigger=PropertyChanged}" Height="23" TextWrapping="NoWrap" Background="#FFCBEECD" AcceptsReturn="False" >
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding AddFieldCommand}"></KeyBinding>
</TextBox.InputBindings>
</TextBox>
AddFieldCommand 作为属性存在于我的 ViewModel 中:
public ICommand AddFieldCommand { get; private set; }
在 ViewModel 构造函数中存在以下RelayCommand。
AddFieldCommand = new RelayCommand(AddField);
从RelayCommand 调用方法AddField。
public void AddField()
{
Console.WriteLine("AddField Method")
}
这不起作用 - AddField 方法永远不会被调用。有人可以帮忙吗?
【问题讨论】:
-
不是
AcceptsReturn="false"造成的吗? -
@KingKing 不,
AcceptsReturn="false"可以防止换行。 MSDN -
你试过在方法
AddField中设置一些断点吗?不要期望控制台会出现并打印一些消息供您查看。 -
@KingKing 是的,我已经在方法中尝试过断点——断点永远不会被激活。
标签: c# wpf xaml mvvm mvvm-light