求wpf代码,鼠标移上列表某列单元格时,用tooltips展示与该单元格数据相关的一个列表(数据是个一集合)
wpf代码,鼠标移动到datagrid某个单元格上时,怎样用tooltips或其他方式显示一个列表数据(悬浮窗状态),鼠标移开后悬浮窗列表消失?...
wpf代码,鼠标移动到datagrid某个单元格上时,怎样用tooltips或其他方式显示一个列表数据(悬浮窗状态),鼠标移开后悬浮窗列表消失?
展开
2个回答
展开全部
这有两种做法,都很简单,我跟你说下思路。
第一种做法:Datagrid绑定的是数据实体集合,每一行的dataContext是一个数据实体对象。这个对象里可以加个List<>属性,用来存放悬浮窗里展示的列表。然后可以给datagridrow或者datagridcell上添加MouseMove事件,后台获取到datagridrow或cell的datacontext。然后刷新tooltips里listbox的Itemsouce即可。
第二种方法:无需改变实体对象结构。在后台定义一个全局的用来存放悬浮窗显示列表List<>对象,在第一种方法的MouseMove事件里获取datacontext。然后根据这个datacontext(其实就是实体对象)的id或者其他什么值,去动态刷新全局的List<>。然后再把这个list<>绑定到tooltips里。
第一种方法是写死的(tooltip展示的list数据都事先加载好),第二种方法是动态的,比较省资源。
第一种做法:Datagrid绑定的是数据实体集合,每一行的dataContext是一个数据实体对象。这个对象里可以加个List<>属性,用来存放悬浮窗里展示的列表。然后可以给datagridrow或者datagridcell上添加MouseMove事件,后台获取到datagridrow或cell的datacontext。然后刷新tooltips里listbox的Itemsouce即可。
第二种方法:无需改变实体对象结构。在后台定义一个全局的用来存放悬浮窗显示列表List<>对象,在第一种方法的MouseMove事件里获取datacontext。然后根据这个datacontext(其实就是实体对象)的id或者其他什么值,去动态刷新全局的List<>。然后再把这个list<>绑定到tooltips里。
第一种方法是写死的(tooltip展示的list数据都事先加载好),第二种方法是动态的,比较省资源。
展开全部
<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; }
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询