wpf 以编程方式向DataGrid单元格添加工具提示

wqsoz72f  于 2023-08-07  发布在  其他
关注(0)|答案(2)|浏览(262)

我使用了不同的方法来向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。

piah890a

piah890a1#

使用CellStyle属性,您可以执行以下操作:

Style CellStyle_ToolTip = new Style();
var CellSetter = new Setter(DataGridCell.ToolTipProperty, new Binding() {RelativeSource=new RelativeSource(RelativeSourceMode.Self), Path=new PropertyPath("Content.Text")});

CellStyle_ToolTip.Setters.Add(CellSetter); 

grid.CellStyle = CellStyle_ToolTip;

字符串

o7jaxewo

o7jaxewo2#

包括这个

Style CellStyle_ToolTip = new Style();
var CellSetter = new Setter(DataGridCell.ToolTipProperty, new Binding() {RelativeSource=new RelativeSource(RelativeSourceMode.Self), Path=new PropertyPath("Content.Text")});

CellStyle_ToolTip.Setters.Add(CellSetter); 

grid.CellStyle = CellStyle_ToolTip;

字符串

如何将Textwrap添加到工具提示中?

相关问题