About DataGrid

博客介绍了DataGrid控件相关内容,创建项时会引发ItemCreated事件,项被数据绑定后会引发ItemDataBound事件,此事件提供在客户端显示数据项前访问它的最后机会,事件引发后数据项将设为空且不再可用。

Creating a Pageable, Sortable DataGrid
Common Datagrid Mistakes

当在 DataGrid 控件中创建项时会引发 ItemCreated 事件。

当项被数据绑定到 DataGrid 控件后,将引发 ItemDataBound 事件。此事件为您提供了在客户端显示数据项之前访问该数据项的最后机会。当引发此事件后,该数据项将被设为空,并且不再可用。

在WPF中,我运用了Wpf.Ui.Controls下的 NavigationViewItem来实现导航界面来跳转Page的功能,但是跳转的时候发现有些许卡顿,后面发现但凡是数据较多,假设DataGrid超过了10条,跳转的时候都会有些许卡顿,按理来说,数据已经在内存里面加载好了,应该没什么问题啊??????为什么数据量大一点点就会卡顿呢????是控件的设计缺陷吗????我的界面代码如下 <ui:NavigationView x:Name="NavigationView" Grid.Row="1" Margin="0" FooterMenuItemsSource="{Binding ViewModel.FooterMenuItems, Mode=OneWay}" IsBackButtonVisible="Collapsed" IsPaneToggleVisible="False" MenuItemsSource="{Binding ViewModel.MenuItems, Mode=OneWay}" PaneDisplayMode="LeftFluent"> <ui:NavigationView.ContentOverlay> <Grid> <ui:SnackbarPresenter x:Name="SnackbarPresenter" /> </Grid> </ui:NavigationView.ContentOverlay> </ui:NavigationView> ViewModel的代码如下 public void InitializeViewModel() { UserInfo = UserService.LoginUser; string aboutTitle = "关于"; string patientListTitle = "病人列表"; string dataStatisticsTitle = "数据统计"; string caseCollectionTitle = "病例收藏"; string userDepartmentTitle = "用户科室"; string systemSettingsTitle = "系统设置"; FooterMenuItems.Clear(); FooterMenuItems.Add(new NavigationViewItem(aboutTitle, typeof(AboutPage)) { Icon = SetImageIcon(aboutTitle), Content = new TextBlock() { FontSize = 12, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, Text = aboutTitle } }); MenuItems.Clear(); MenuItems.Add(new NavigationViewItem(patientListTitle, typeof(PatientListPage)) { Icon = SetImageIcon(patientListTitle), Content = new TextBlock() { FontSize = 12, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, Text = patientListTitle } });if (UserInfo.PermissionValue != null && UserInfo.PermissionValue.CanDataStatistics) { MenuItems.Add(new NavigationViewItem(dataStatisticsTitle, typeof(StatisticsPage)) { Icon = SetImageIcon(dataStatisticsTitle), Content = new TextBlock() { FontSize = 12, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, Text = dataStatisticsTitle }, }); } if (UserInfo.PermissionValue != null && UserInfo.PermissionValue.CanCollectCase) { MenuItems.Add(new NavigationViewItem(caseCollectionTitle, typeof(CaseCollectionPage)) { Icon = SetImageIcon(caseCollectionTitle), Content = new TextBlock() { FontSize = 12, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, Text = caseCollectionTitle } }); } if (UserInfo.PermissionValue != null && UserInfo.PermissionValue.CanUserDeptManager) { MenuItems.Add(new NavigationViewItem(userDepartmentTitle, typeof(UserAndDepartmentPage)) { Icon = SetImageIcon(userDepartmentTitle), Content = new TextBlock() { FontSize = 12, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, Text = userDepartmentTitle } }); } if (UserInfo.PermissionValue != null && UserInfo.PermissionValue.CanSetSystem) { MenuItems.Add(new NavigationViewItem(systemSettingsTitle, typeof(SystemSettingsPage)) { Icon = SetImageIcon(systemSettingsTitle), Content = new TextBlock() { FontSize = 12, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, Text = systemSettingsTitle } }); } }
最新发布
08-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值