我正在尝试完全在代码隐藏文件中创建datagrid工具提示。 工具提示XAML代码如下所示:
<data:DataGrid>
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="My Header">
<data:DataGridTextColumn.HeaderStyle>
<Style TargetType="dataprimitives:DataGridColumnHeader">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<ContentControl Content="{Binding}">
<ToolTipService.ToolTip>
<ToolTip Content="My Tooltip"></ToolTip>
</ToolTipService.ToolTip>
</ContentControl>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</data:DataGridTextColumn.HeaderStyle>
</data:DataGridTextColumn>
</data:DataGrid.Columns>
我被困在<Setter Property="ContentTemplate">
。我目前的代码:
Style style = new Style();
style.TargetType = typeof(DataGridColumnHeader);
Setter setter = new Setter();
setter.Property = DependencyProperty.Register("ContentTemplate", typeof(DataTemplate), typeof(FrameworkElement), null);
任何人都可以向我展示在代码背后实现此部分的示例:
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<ContentControl Content="{Binding}">
<ToolTipService.ToolTip>
<ToolTip Content="My Tooltip"></ToolTip>
</ToolTipService.ToolTip>
</ContentControl>
</DataTemplate>
</Setter.Value>
</Setter>
谢谢!
答案 0 :(得分:3)
获得要添加工具提示的列的句柄后,请尝试以下操作。
var style = new Style(typeof(DataGridColumnHeader));
style.Setters.Add(new Setter(ToolTipService.ToolTipProperty, "Customer Name"));
现在您已经定义了工具提示值,那么您可以将列的HeaderStyle属性设置为这样......
dgCustDetails.Columns[0].HeaderStyle = style;
其中dgCustDetails是数据网格的名称。
答案 1 :(得分:1)
Style stylecell = new Style(typeof(DataGridCell));
Binding descriptionbinding = new Binding("SRNO") { StringFormat = "{0}" };
stylecell.Setters.Add(newSetter(ToolTipService.ToolTipProperty,descriptionbinding));
gridItem.Columns[0].CellStyle = stylecell;