加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在WPF中的DataGridTextColumn中格式化工具提示的字符

发布时间:2020-12-15 07:47:54 所属栏目:百科 来源:网络整理
导读:目前我需要在数据单元格列类型DataGridTextColumn中格式化工具提示字符串 这是我的尝试: DataGrid.Columns DataGridTextColumn Header ="Count Number" DataGridTextColumn.CellStyle Style TargetType="DataGridCell" Setter Property="ToolTip" Value="{B
目前我需要在数据单元格列类型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,你需要使用TextBlock设置ContentControl:

<TextBlock.ToolTip>
    <ToolTip>
        <TextBlock Text="{Binding Path=Age,StringFormat=0{0}}" />
    </ToolTip>
</TextBlock.ToolTip>

最重要的是在ToolTip中设置强制ContentControl,不一定,如我的示例中所示(使用DataGridTemplateColumn).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读