2016-11-03 104 views
0

在我的WPF應用程序中,我想將用戶F5筆畫作爲刷新處理。爲了達到這個目的,我決定利用NavigationCommands.Refresh命令。使用NavigationCommands.Refresh擴展WPF工具包DataGridControl

在UI內部,我利用Extended WPF ToolkitDataGridControl。問題:只要焦點位於數據網格內,刷新命令處理程序就不會被觸發。

這可以用一個非常小的樣本來證明:

<Window x:Class="WpfTests.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:xd="http://schemas.xceed.com/wpf/xaml/datagrid"> 
    <Window.CommandBindings> 
     <CommandBinding Command="NavigationCommands.Refresh" Executed="CommandBinding_Executed" CanExecute="CommandBinding_CanExecute"/> 
    </Window.CommandBindings> 
    <StackPanel> 
     <TextBox Text="Click me to get the focus out of DataGridControl"/> 
     <xd:DataGridControl/> 
    </StackPanel> 
</Window> 

沒什麼特別在後面的代碼怎麼回事,我只是用它來設置斷點在處理程序:

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
    } 

    private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) 
    { 
     e.Handled = true; 
    } 

    private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e) 
    { 
     e.CanExecute = true; 
     e.Handled = true; 
    } 
} 

重現:

  • 啓動應用程序,按F5 - 處理程序執行
  • 點擊進入DataGridControl區域,按F5 - 處理程序不執行
  • 點擊進入文本框,按F5 - 處理程序執行

所以,我怎麼能保證我的刷新處理程序執行的問題時,當焦點位於DataGridControl內時,用戶按下F5鍵?

回答

相關問題