首页 > 其他分享 >Wpf Datagrid 操作总结

Wpf Datagrid 操作总结

时间:2023-05-05 14:55:40浏览次数:35  
标签:总结 cell SetValue ComboBox factory Datagrid buttonComboBox selectedCell Wpf

1. 行选中时,.SelectedIndex可以获取行索引

2.单元格选中时,获取行索引可以用以下(Grid为DataGrid的对象)

DataGridCellInfo selectedCell = Grid.SelectedCells.FirstOrDefault();
//没有选中Record
if (selectedCell == null || selectedCell.Column == null)
    return;
int index = Grid.Items.IndexOf(selectedCell.Item);

3.替换某个单元格中TextBlock为Combox

DataGridRow row = (DataGridRow)Grid.ItemContainerGenerator.ContainerFromIndex(Index);
DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(row);
//这行代码是通过行得到单元格
DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(Col);
//这行代码是通过index得到具体的单元格

FrameworkElementFactory factory = new FrameworkElementFactory(typeof(StackPanel));
factory.SetValue(StackPanel.OrientationProperty, Orientation.Horizontal);

FrameworkElementFactory buttonComboBox = new FrameworkElementFactory(typeof(ComboBox));

buttonComboBox.SetValue(ComboBox.SelectedIndexProperty, 0);
buttonComboBox.SetValue(ComboBox.DisplayMemberPathProperty, "Data");
buttonComboBox.SetValue(ComboBox.ItemsSourceProperty, filterDataList);
buttonComboBox.SetValue(ComboBox.WidthProperty, cell.ActualWidth);
buttonComboBox.SetValue(ComboBox.FontSizeProperty, cell.FontSize - 3);

buttonComboBox.AddHandler(
      ComboBox.LoadedEvent,
      new RoutedEventHandler(
      (s, ea) =>
      {
         ComboBox comboBox = (ComboBox)s;
         comboBox.DropDownClosed += ComboBox_DropDownClosed;
       }));

factory.AppendChild(buttonComboBox);

DataTemplate dataTemplate = new DataTemplate();
dataTemplate.VisualTree = factory;

if(cell.ContentTemplate == null)
{
    cell.ContentTemplate = dataTemplate;
}

4. ItemContainerGenerator顺序为Datagrid显示的顺序,排序后也与之对应

  

标签:总结,cell,SetValue,ComboBox,factory,Datagrid,buttonComboBox,selectedCell,Wpf
From: https://www.cnblogs.com/wuguoqiang/p/17374135.html

相关文章

  • 5.4每日总结
    今天学习了matlif,学会了其基本的使用并且编写了一些程序,如下: golds.mfunction[xmin,fmin,iter]=golds(fun,a,b,tol)  rho=(sqrt(5)-1)/2;  x1=a+(1-rho)*(b-a);x2=a+rho*(b-a);  f1=fun(x1);f2=fun(x2);  iter=......
  • 5.4每日总结
    //实例化一个新的窗口,并指定从那个窗口到哪个窗口intent=newIntent(MainActivity.this,secondwindow.class);//将数据发送到intent中intent.putExtra("name",ed_text.getText().toString().trim());//启动新窗口startActivity(intent);//获取intentIntentintent=ge......
  • 5.4每日总结
    今天做了什么:完成了首部导航栏,学习了matlab,完成了0.618算法和最速下降法的matlab编程遇到了哪些困难:当跳转activity时用bundle传递参数过大(图片),容易造成系统崩溃闪退,可以采用全局变量存储,或者解码传递压缩后文件明天打算做什么:继续学习web,完善app......
  • 时序约束总结(2)net18
    课程中对rx_clk和rx_data进行时序约束,实际采用时钟是经过PLL相移的rx_clk_90时钟和rx_datarx_ctrl的约束假设时钟Tskew的偏斜=2 ,数据的偏斜一般都很小,大概是数据周期的1/40,假设周期为8ns,则数据偏斜为0.2ns  注意,这里是双边沿采样之前章节的计算方法:dMax=2+sk......
  • 数学期中测试卷错题总结
    1.概念不清,涉及概念:如果一个数的立方等于a,那么这个数叫做a的立方根,用“”表示,读作“三次根号a”2.概念不清,涉及概念:    1)经过直线外的一点,有且只有一条直线与已知直线与已知直线平行    2)两直线平行,同位角相等    3)垂线段的长度,叫做两条直线的距离......
  • WPF Thumb 滑块控件踩坑
    最近在做一个仿手机选择时间的控件,如下图,选用了Thumb滑块控件做上下滑动的功能。订阅了 Thumb_OnDragStarted、Thumb_DragDelta和Thumb_DragCompleted的事件,做一些业务逻辑 发现问题:在我们普通pc电脑上,滑块的Thumb_DragDelta和Thumb_DragCompleted的e.VerticalChange......
  • 每日总结· 5.4
    今日学习了matlab的使用随后进行了html学习/*表格样式*/table{width:90%;background:#ccc;margin:10pxauto;border-collapse:collapse;/*border-collapse:collapse合并内外边距(去除表格单元格默认的2个像素内外边距*/}th,td{height:......
  • 各种常用的默认端口号 总结
    端口号的范围是从1~65535。其中1~1024是被RFC3232规定好了的,被称作“众所周知的端口”(WellKnownPorts);从1025~65535的端口被称为动态端口(DynamicPorts),可用来建立与其它主机的会话,也可由用户自定义用途。详细版常见端口0端口|无效端口,通常用于分析操作系统1端口|传输......
  • Z-index优先级总结
    因为HTML元素显示在显示器上都是一个二维平面,只拥有x和y轴的属性,为了让元素显示有一些层级关系的效果,所以引入了z-index属性来表示三维立体空间的z轴方面,这样显示出来的界面就有了三维立体的上下关系的效果。z-index的属性值有三种可能:注释:所有主流浏览器都支持z-index属性......
  • 时序约束总结
    关于输入时钟的时序约束,如果输入的基准时钟没有送入PLL就直接给内部模块使用,那么需要进行时序约束,点击IMPLEMENTATION,完成后打开报告时序报告,关闭红色箭头所指的报告 进行时钟的约束 点击加号,添加需要约束的时钟,输入时钟的名称(可自定义),添加时钟源  I/OPort指top层......