目前我需要在数据单元格列类型 DataGridTextColumn
中格式化工具提示字符串
这是我的尝试:
<DataGrid.Columns>
<DataGridTextColumn Header ="Count Number">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ToolTip"
Value="{Binding CountNumber, StringFormat={}{0:00}}">
</Setter>
</Style>
</DataGridTextColumn.CellStyle>
<DataGridTextColumn.Binding>
<Binding Path="CountNumber" StringFormat="{}{0:00}" UpdateSourceTrigger="PropertyChanged" />
</DataGridTextColumn.Binding>
</DataGridTextColumn>
<!-- other columns-->
</DataGrid.Columns>
我也试过:
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ToolTip" Value="{Binding CountNumber}"/>
<Setter Property="ToolTip.ContentStringFormat" Value="{}{0:00}"/>
</Style>
</DataGridTextColumn.CellStyle>
但它们都不起作用。
例如,数字3
应该显示为03
。有什么想法吗?
最佳答案
试试这个:
<DataGridTemplateColumn Width="260" Header="MySample">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Age}">
<TextBlock.ToolTip>
<ToolTip>
<TextBlock Text="{Binding Path=Age, StringFormat=0\{0\}}" />
</ToolTip>
</TextBlock.ToolTip>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Here是对这个技巧的描述。引用:
A ToolTip is a content control, which means it doesn't really have a display model. Since the TextBox is designed to display text, the StringFormat binding property works as advertised. Button is another example of this. (Both derive from ContentControl).
思路是在ToolTip
中得到StringFormat
,需要设置ContentControl
和TextBlock
:
<TextBlock.ToolTip>
<ToolTip>
<TextBlock Text="{Binding Path=Age, StringFormat=0\{0\}}" />
</ToolTip>
</TextBlock.ToolTip>
对你来说最主要的是在ToolTip
中设置强制ContentControl
,不一定,就像我的例子(使用DataGridTemplateColumn
) .
关于c# - 如何在 WPF 的 DataGridTextColumn 中格式化工具提示的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18076620/