求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 += delegateList<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展示与该单元格数据相关的一个列表(数据是个一集合)的主要内容,如果未能解决你的问题,请参考以下文章
C#winform中的 dataGridView 鼠标点行首时选中整行,点击单元格时 选中单元格,如图: