为了账号安全,请及时绑定邮箱和手机立即绑定

Datagrid UI 虚拟化,最初显示在底部的最后一项

Datagrid UI 虚拟化,最初显示在底部的最后一项

C#
BIG阳 2021-11-28 19:41:27
我有一个DataGridwith ids ,它是从上到下按升序显示的。然而,最后一个 ids(hightest number) 必须最初显示,但仍然在DataGrid. 这意味着您必须滚动到顶部以显示旧 ID。是否可以在虚拟化仍然完好无损的情况下做到这一点?我们正在使用 sfdatagrid(syncfusion)。但是,如果任何其他网格(包括 wpf 原生网格)包含此内容,我可以调查一下
查看完整描述

1 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

是否可以在虚拟化仍然完好无损的情况下做到这一点?


是的。至少使用内置DataGrid控件。这只是在创建任何容器之前滚动到底部的问题。请参考以下示例代码:


public partial class MainWindow : Window

{

    public MainWindow()

    {

        InitializeComponent();

        numberGrid.ItemsSource = Enumerable.Range(1, 100);

        numberGrid.ScrollIntoView(numberGrid.Items[numberGrid.Items.Count - 1]);

    }


    int n = 0;

    private void DataGridRow_Loaded(object sender, RoutedEventArgs e)

    {

        txt.Text = (n++).ToString();

    }

}

XAML:


<DataGrid x:Name="dg" Height="200">

    <DataGrid.ItemContainerStyle>

        <Style TargetType="DataGridRow">

            <EventSetter Event="Loaded" Handler="DataGridRow_Loaded" />

        </Style>

    </DataGrid.ItemContainerStyle>

    <DataGrid.Columns>

        <DataGridTextColumn Binding="{Binding}" />

    </DataGrid.Columns>

</DataGrid>


<TextBlock x:Name="txt" />

可视化树中只加载了 11 个容器:

//img1.sycdn.imooc.com//61a36b010001d03f05080257.jpg

查看完整回答
反对 回复 2021-11-28
  • 1 回答
  • 0 关注
  • 206 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信