【问题标题】:TextBox Keydown method called twiceTextBox Keydown 方法调用了两次
【发布时间】:2016-08-10 15:44:37
【问题描述】:
<TextBox Width="120" Margin="20,0" HorizontalAlignment="Left"
KeyDown="{x:Bind ViewModel.AddNewTag}"
PlaceholderText="Add New Tag"
Text="{x:Bind ViewModel.NewTagToAdd, Mode=TwoWay}" />
public void AddNewTag(object sender, KeyRoutedEventArgs e)
{
    if (e.Key == Windows.System.VirtualKey.Enter)
    {
        var newTag = ((TextBox)sender).Text;

        if (NewTagDoesNotExistInCurrentLists(newTag))
        {
            var tagDTO = new TagDTO { UserName = UserName, TagName = newTag };
            NewTagToAdd = null;
            TagsAvailableForSelecting.Add(tagDTO);
            TagsAvailableForSelecting.Sort(x => x.TagName, true);
        }
    }
}

当我在文本框中输入一个单词并按 Enter 键时,该方法会被调用两次。使用模板 10。

{
  "dependencies": {
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.1.0",
    "Microsoft.Xaml.Behaviors.Uwp.Managed": "1.1.0",
    "Newtonsoft.Json": "8.0.3",
    "Template10": "1.1.*",
    "WindowsAzure.Storage": "7.1.2"
  },
  "frameworks": {
    "uap10.0": {}
  },
  "runtimes": {
    "win10-arm": {},
    "win10-arm-aot": {},
    "win10-x86": {},
    "win10-x86-aot": {},
    "win10-x64": {},
    "win10-x64-aot": {}
  }

【问题讨论】:

  • 感谢编辑帮助。
  • 你是否尝试过设置:e.Handled = true;

标签: mvvm uwp-xaml template10 xbind


【解决方案1】:

正如 Igor 所说,使用 e.Handled = true 告诉系统您已经完成了您需要做的一切。

public void AddNewTag(object sender, KeyRoutedEventArgs e)
{
    if (e.Key == Windows.System.VirtualKey.Enter)
    {
        var newTag = ((TextBox)sender).Text;

        if (NewTagDoesNotExistInCurrentLists(newTag))
        {
            var tagDTO = new TagDTO { UserName = UserName, TagName = newTag };
            NewTagToAdd = null;
            TagsAvailableForSelecting.Add(tagDTO);
            TagsAvailableForSelecting.Sort(x => x.TagName, true);
        }

        e.Handled = true;
    }
}

作为社区 wiki 发布。

【讨论】:

    猜你喜欢
    • 2017-10-15
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    相关资源
    最近更新 更多