WPF ListBoxEdit 控件 - 以编程方式引发 PageDown 事件

WPF ListBoxEdit control - Raise PageDown event programmatically

我在 WPF 中有一个 ListBoxEdit DevExpress 控件,我想在单击另一个按钮时向下翻页/向上翻页它的内容。

在 UI 中,当我专注于 ListBoxEdit 控件和键 PageDown 时它起作用了。

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

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

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

知道我做错了什么吗?

我找到了:)

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 控件。