WPF Datagrid的tabcontrol中的scrollviewer问题

时间:2019-02-21 01:56:49

标签: c# wpf datagrid scrollviewer

我在这里试图做的是在wpf datagrid控件中加载尽可能多的行,直到它溢出(也可以看到垂直滚动查看器)。这是我的代码:

    ScrollViewer GetScrollViewer(UIElement element)
    {
        if (element == null) return null;

        ScrollViewer retour = null;
        for (int i = 0; i < VisualTreeHelper.GetChildrenCount(element) && retour == null; i++)
        {
            if (VisualTreeHelper.GetChild(element, i) is ScrollViewer)
            {
                retour = (ScrollViewer)(VisualTreeHelper.GetChild(element, i));
            }
            else
            {
                retour = GetScrollViewer(VisualTreeHelper.GetChild(element, i) as UIElement);
            }
        }
        return retour;
    }

    private void M_vm_LoadUserCompleted(int resultCount)
    {
        ScrollViewer sv = GetScrollViewer(lst);

        if (sv == null)
        {
            return;
        }

        if (sv.ComputedVerticalScrollBarVisibility != Visibility.Visible &&
            resultCount > 0)
        {
            // Load more.
            m_vm.LoadMoreCommand.Execute(null);
        }
    }

在成功向REST API服务器发出请求后,将调用M_vm_LoadUserCompleted。当前,它在单个请求中提取15行(受后端服务器限制)。在我将其放入选项卡控件之前,此解决方案实际上是有效的。因此,问题在于,当我切换到另一个选项卡时,属性sv.ComputedVerticalScrollBarVisibility从未变为Visible。因此,它不会一直运行直到数据网格“溢出”,而是一直运行,以便将所有数据(数千行)加载到我的应用程序中,从而导致非常糟糕的用户体验。当未选择包含滚动查看器的当前选项卡时,这是滚动查看器的预期行为吗?如何克服这个问题。非常感谢您的帮助。谢谢。

0 个答案:

没有答案