我使用了不同的方法来向DataGrid的单元格添加工具提示。我也在这个网站上找到了一些信息,但我没有让它工作。
以下是问题所在以及我所尝试的:
我有一个DataGrid:
DataGrid grid = new DataGrid();
Binding b = new Binding() { Mode = BindingMode.TwoWay, UpdateSourceTrigger = UpdateSourceTrigger.Default, Source = AnObersableCollection, NotifyOnSourceUpdated = true, Path = new PropertyPath(".") } );
grid.SetBinding(DataGrid.ItemsSourceProperty, b);
字符串
我希望每个单元格都有一个工具提示,并将单元格内容作为工具提示内容,以便在工具提示中看到截断的文本。所以我用CellStyles创建了一个这样的:
Style CellStyle_ToolTip = new Style();
CellStyle_ToolTip.Setters.Add(new Setter(DataGridCell.ToolTipProperty, new ToolTip() { Content = "Yeah!" } ));
型
这适用于静态工具提示内容,但如何才能使工具提示将显示的单元格内容作为内容?
我发现
CellStyle_ToolTip.Setters.Add(new Setter(DataGridCell.ToolTipProperty, new ToolTip().SetBinding(ToolTip.ContentProperty, b) ));
型
不起作用,并生成“无法设置表达式”。它被标记为“不可共享”,并且已经被使用过”-错误,这很有意义,因为绑定已经在使用中。我是通过其他几次讨论得出这个方法的(这可能完全是胡说八道),这些讨论都使用xaml,这对我来说不是一个选择。我也发现了下面的解决方案,但不知道如何使用没有xaml。
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Content.Text}" />
</Style>
</DataGrid.CellStyle>
型
PS:除了一个DataGridComboBoxColumn之外,所有列都是DataGridTextColumns。
2条答案
按热度按时间piah890a1#
使用
CellStyle
属性,您可以执行以下操作:字符串
o7jaxewo2#
包括这个
字符串
如何将Textwrap添加到工具提示中?