【问题标题】:WPF DataGrid focused row in the middle of visibleWPF DataGrid 焦点行在可见的中间
【发布时间】:2013-05-22 16:03:28
【问题描述】:

我需要实现滚动到 Datagrid 中的特定项目。 fx I 选择第 355 行,需要滚动到可见网格区域的中心

到目前为止,我为 SelectionChanged 事件编写了以下代码:

   private void CoreServiceLogDataGridOnSelectionChanged(
        object sender, SelectionChangedEventArgs selectionChangedEventArgs)
    {
        if (CoreServiceLogDataGrid.SelectedItem != null)
        {
            CoreServiceLogDataGrid.ScrollIntoView(CoreServiceLogDataGrid.SelectedItem);
        }
    }

如果需要,我有更多示例代码。

任何帮助将不胜感激。

【问题讨论】:

  • -.- 你的问题是?
  • @DHN 我希望所选行位于可见网格区域的 Center 中。通常行在可见网格区域的顶部或底部。
  • O.o - 对不起,我必须告诉你,但这就是你想要的。一个目标...问题的描述通常是对现状的总结加上一个指示,即哪一部分是错误的或者你在哪里遇到了问题。

标签: c# wpf datagrid


【解决方案1】:

我不知道我在做什么,但如果您使用此代码,您只需要选择您的项目,行为就会滚动到正确的位置。

public class RadScrollIntoViewBehavior : Behavior<RadGridView>
{
    protected override void OnAttached()
    {
        base.OnAttached();
        this.AssociatedObject.SelectionChanged += new EventHandler<SelectionChangeEventArgs>(AssociatedObject_SelectionChanged);
    }

    void AssociatedObject_SelectionChanged(object sender, SelectionChangeEventArgs e)
    {
        if (sender is RadGridView)
        {
            RadGridView grid = (sender as RadGridView);
            if (grid.SelectedItem != null)
            {
                grid.UpdateLayout();
                grid.ScrollIntoView(grid.SelectedItem, null);
            }
        }
    }

    protected override void OnDetaching()
    {
        base.OnDetaching();
        this.AssociatedObject.SelectionChanged -= new EventHandler<SelectionChangeEventArgs>(AssociatedObject_SelectionChanged);
    }
}




<telerik:RadGridView>
   <i:Interaction.Behaviors>
                <my3:RadScrollIntoViewBehavior />
            </i:Interaction.Behaviors> 
                <telerik:RadGridView.Columns>
                     <telerik:GridViewDataColumn Name="example"/>
                </telerik:RadGridView.Columns>
</telerik:RadGridView>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 2019-06-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多