[英]How to format string for tooltip in DataGridTextColumn in WPF
目前我需要在數據單元格列類型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>
這是對這個技巧的描述。 引用:
ToolTip是一個內容控件,這意味着它實際上沒有顯示模型。 由於TextBox旨在顯示文本,因此StringFormat綁定屬性的工作方式與廣告一樣。 按鈕是另一個例子。 (兩者都來自ContentControl)。
想法是在ToolTip
獲得StringFormat
,你需要使用TextBlock
設置ContentControl
:
<TextBlock.ToolTip>
<ToolTip>
<TextBlock Text="{Binding Path=Age, StringFormat=0\{0\}}" />
</ToolTip>
</TextBlock.ToolTip>
主要的是在ToolTip
設置強制ContentControl
,不一定,如我的例子中所示(使用DataGridTemplateColumn
)。
我有一個與DataGridHyperlinkColumn
類似的問題,我不想更改為DataGridTemplateColumn
所以我提出了我認為更好的解決方案。 您所要做的就是在<Setter...>
打破Value
的設置,並將內容放在TextBlock
如下所示:
<DataGridTextColumn Header ="Count Number">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ToolTip">
<Setter.Value>
<TextBlock Text="{Binding CountNumber, StringFormat={}{0:00}}" />
</Setter.Value>
</Setter>
</Style>
</DataGridTextColumn.CellStyle>
<DataGridTextColumn.Binding>
<Binding Path="CountNumber" StringFormat="{}{0:00}" UpdateSourceTrigger="PropertyChanged" />
</DataGridTextColumn.Binding>
</DataGridTextColumn>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.