在 WPF 中处理 GridControl 行选择事件的好方法是什么?

What is a good way to handle GridControl Row Selection events in WPF?

因此,在 GridControl 中,用户 selects 他想查看哪个会话,然后按 "See Gallery",这会将应用程序带到 "next" 视图 - 图库,然后将另一个 GridControl 添加到 select 该图库中的哪个图像,然后按 "See Images" 继续等等。

我正在尝试摆脱所有 "Buttons" 并让网格中的用户 "row selection" 本身充当下一个视图的事件处理程序(会话->图库->图像-> .. ETC)。这将在每个视图上节省一个步骤 "Selecting instead of selecting + clicking"

我使用了 属性 sessionGrid.SelectedItemChanged 并按如下方式创建了它的事件处理程序,并放置了与 OnClick Gallery Button 相同的事件处理程序:

    private void sessionGrid_SelectedItemChanged(object sender, DevExpress.Xpf.Grid.SelectedItemChangedEventArgs e)
    {
        SeeGalleryClicked(this, new EventArgs());
    }

这正是我想要的。在 Grid-Row selection 上,应用程序切换到该特定行的下一个视图。但是,如果用户返回 select 同一行,它将不会转到下一个视图,因为 "Selected Item did not change"。

如果可以的话,我会用这样的东西:

sessionsUserControl.sessionGrid.SelectedItemChanged = ??;

重置网格中的 "selection" 会很棒。但是有什么办法吗?

谢谢

您可以使用数据绑定。将 SelectedItem/SelectedIndex 属性 绑定到代码隐藏中的 属性。
每当用户 select 一行时,您都会收到通知。
您可以通过为此 属性 设置不同的值来 select 不同的行。

已使用 TouchDown/MouseDown 事件处理程序修复此问题,如下所示:

        private void sessionGrid_TouchDown(object sender, TouchEventArgs e)
    {
        GalleryButtonClicked(this, new EventArgs());
    }

现在完美了。