求wpf代码,鼠标移上列表某列单元格时,用tooltips展示与该单元格数据相关的一个列表(数据是个一集合)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求wpf代码,鼠标移上列表某列单元格时,用tooltips展示与该单元格数据相关的一个列表(数据是个一集合)相关的知识,希望对你有一定的参考价值。

wpf代码,鼠标移动到datagrid某个单元格上时,怎样用tooltips或其他方式显示一个列表数据(悬浮窗状态),鼠标移开后悬浮窗列表消失?

这有两种做法,都很简单,我跟你说下思路。
第一种做法:Datagrid绑定的是数据实体集合,每一行的dataContext是一个数据实体对象。这个对象里可以加个List<>属性,用来存放悬浮窗里展示的列表。然后可以给datagridrow或者datagridcell上添加MouseMove事件,后台获取到datagridrow或cell的datacontext。然后刷新tooltips里listbox的Itemsouce即可。
第二种方法:无需改变实体对象结构。在后台定义一个全局的用来存放悬浮窗显示列表List<>对象,在第一种方法的MouseMove事件里获取datacontext。然后根据这个datacontext(其实就是实体对象)的id或者其他什么值,去动态刷新全局的List<>。然后再把这个list<>绑定到tooltips里。
第一种方法是写死的(tooltip展示的list数据都事先加载好),第二种方法是动态的,比较省资源。
参考技术A   <DataGrid x:Name="dataGrid" ItemsSource="Binding">
      <DataGrid.CellStyle>
          <Style TargetType="DataGridCell">
              <Setter Property="ToolTip">
                  <Setter.Value>
                      <ListBox ItemsSource="Binding TestList"></ListBox>
                  </Setter.Value>
              </Setter>
          </Style>
      </DataGrid.CellStyle>
  </DataGrid>

后台绑定:

this.Loaded += delegate

    List<Demo> listDemo = new List<Demo>();
    listDemo.Add(new Demo()  ID = 1, Name = "张三", Remark = "张三", TestList = new List<string>()  "A1", "B1", "C1"  );
    listDemo.Add(new Demo()  ID = 2, Name = "李四", Remark = "李四", TestList = new List<string>()  "A2", "B2", "C2"  );
    listDemo.Add(new Demo()  ID = 3, Name = "王五", Remark = "王五", TestList = new List<string>()  "A3", "B3", "C3"  );
    dataGrid.DataContext = listDemo;
;

public class Demo
    
        public int ID  get; set; 

        public string Name  get; set; 

        public string Remark  get; set; 

        public List<string> TestList  get; set; 
    

本回答被提问者采纳

以上是关于求wpf代码,鼠标移上列表某列单元格时,用tooltips展示与该单元格数据相关的一个列表(数据是个一集合)的主要内容,如果未能解决你的问题,请参考以下文章

excel怎样将某列数据改为一位小数

C#winform中的 dataGridView 鼠标点行首时选中整行,点击单元格时 选中单元格,如图:

WPF 3D 使用3D Tools简单实现鼠标控制模型

当鼠标点到excel单元格时,单元格所在的行和列会自动显示颜色

WPF DataGrid:如何在单击单元格时停止自动滚动?

如何将excel某列内相同内容填充相同单元格底色?