1

我从数据库中获取数据,然后将其显示在数据网格(wpf)中,用户可以在单击 Enter 后从文本框中进行快速搜索(过滤)。我使用此事件来处理按钮 -Enter-click(OnSearch - 每当单击搜索按钮或按下 Enter 键时都会产生此事件。)

问题是当用户不写任何东西时,即使他点击 Enter-Button 也不会启动事件!我该如何继续使它工作

   public MainWindow()
   {
       InitializeComponent();
       //m_txtTest is a SearchTextBox
       m_txtTest.OnSearch += new RoutedEventHandler(m_txtTest_OnSearch);    
   }

   void m_txtTest_OnSearch(object sender, RoutedEventArgs e)
   {
      //to get the entered string
      SearchEventArgs searchArgs = e as SearchEventArgs;
      ....
      ....
      ....
      ....
   }
4

1 回答 1

0

因此,当您的用户输入某些内容并按 Enter 时,它就是处理事件的文本框。

当他们没有输入任何内容时,尽管文本框没有焦点并且无法处理事件。

我要做的是创建一个在窗口或网格上搜索的事件。

像这样的东西

this.OnPreviewKeyDown += new OnPreviewKeyDownEvent;

http://msdn.microsoft.com/en-us/library/ms748948.aspx

你可以这样想

窗口有焦点

-> 网格有焦点

--> 文本框有焦点

最后一个有焦点的东西(或最内在的元素,把它想象成蛋糕)将是最先看到事件的东西。如果您为该 UI 元素注册了该事件,它将处理它。

文本框没有聚焦,所以它不会看到事件

于 2013-08-21T15:30:48.350 回答