WPF中DataGrid设置默认选中行

1、DataGrid命名为planDataGrid

<DataGrid ItemsSource="{Binding PlanList}" SelectedItem="{Binding SelectedItem}" x:Name="planDataGrid" AutoGenerateColumns="False" CanUserAddRows="False"

GridLinesVisibility="All" FontSize="12" ColumnHeaderHeight="42" RowHeaderWidth="0" EnableRowVirtualization="False" VirtualizingPanel.IsVirtualizing="False">

</DataGrid>

2、 SetSelectedItemFirstRow(page.planDataGrid);调用方法,获取到前端界面的DataGrid,传给后端使用。

cs 复制代码
 void SetSelectedItemFirstRow(object dataGrid)
 {
     //若目标datagrid为空,抛出异常
     if (dataGrid == null)
     {
         throw new ArgumentNullException("目标无" + dataGrid + "无法转换为DataGrid");
     }
     //获取目标DataGrid,为空则抛出异常
     System.Windows.Controls.DataGrid dg = dataGrid as System.Windows.Controls.DataGrid;
     if (dg == null)
     {
         throw new ArgumentNullException("目标无" + dataGrid + "无法转换为DataGrid");
     }
     //数据源为空则返回
     if (dg.Items == null || dg.Items.Count < 1)
     {
         return;
     }

     dg.SelectedItem = dg.Items[0];
     dg.CurrentColumn = dg.Columns[0];
     dg.ScrollIntoView(dg.SelectedItem, dg.CurrentColumn);
     //获取焦点,滚动为目标行
     dg.Focus();
     dg.SelectedItem = selectedItem;//设置选中行
     dg.CurrentColumn = dg.Columns[0];
     dg.ScrollIntoView(dg.SelectedItem, dg.CurrentColumn);
     var item = dg.SelectedItem as PlanDataModel;
     ObservableCollection<CoilListModel> clm = new ObservableCollection<CoilListModel>();
     DBHandle.GetCoilsByJobId(item, ref clm);

     CoilList = clm;
     page.coilDataGrid.ItemsSource = CoilList;
 }
相关推荐
Pasregret1 小时前
缓存与数据库一致性深度解析与解决方案
数据库·缓存·wpf
Java林间2 天前
Zookeeper是什么?基于zookeeper实现分布式锁
分布式·zookeeper·wpf
zizisuo2 天前
1.微服务拆分与通信模式
微服务·wpf
程序员秘密基地2 天前
基于c#,wpf,ef框架,sql server数据库,音乐播放器
sql·sqlserver·c#·.net·wpf
Zhen (Evan) Wang2 天前
.NET 6 WPF 利用CefSharp.Wpf.NETCore显示PDF文件
.net·wpf·.netcore
冰茶_3 天前
WPF特性分析
学习·microsoft·c#·wpf
qq_196055874 天前
最快打包WPF 应用程序
wpf
baivfhpwxf20235 天前
wpf ScaleTransform
wpf
C#_西哥5 天前
wpf stylet框架 关于View与viewmodel自动关联绑定的问题
wpf
wqq10275 天前
WPF 图标原地旋转
wpf