WPF ListBoxEdit控件 - 以编程方式提升PageDown事件

时间:2017-09-21 07:35:23

标签: c# .net wpf listbox keyevent

我在WPF中有一个ListBoxEdit DevExpress控件,我想在点击另一个按钮时向下翻页/翻页。

在UI中,当我专注于ListBoxEdit控件和键PageDown时,它可以工作。

当我以编程方式尝试时,它失败了。我的代码在下面,DataSourceList是x:我的ListBoxEdit控件的名称。

var presentationSource = PresentationSource.FromDependencyObject(this.DataSourceList);
var args = new KeyEventArgs(Keyboard.PrimaryDevice, presentationSource, 0, Key.PageDown);

args.RoutedEvent = Keyboard.KeyDownEvent;
this.DataSourceList.RaiseEvent(args);

知道我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

我找到了它:)

var child = this.DataSourceList.VisualChildren().FirstOrDefault(t => t.GetType() == typeof(ListBoxEditItem));
if (child != null)
{
       var args = new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 0,Key.PageDown);
       args.RoutedEvent = Keyboard.KeyDownEvent;
       args.Source = child;
       InputManager.Current.ProcessInput(args);
}

似乎this.DataSourceList.RaiseEvent(args);没有做到这一点,而事件的来源必须是ListBoxEditItem而不是ListBoxEdit控件。