WPF DataGrid:不编辑时显示小数点后两位,编辑时显示完整数字
WPF DataGrid: Displaying 2 decimal places when not editing, but full number when editing
我正在尝试创建一个数据网格,当用户输入值并按下回车键时,它会以 2 位小数精度显示数据。
然而,当他们点击编辑它时,我希望他们能够再次查看整个数字。
我目前拥有的是:
<DataGridTextColumn Header="s" Binding="{Binding s, StringFormat=N2}" ElementStyle="{StaticResource TextColumnWhite}" >
<DataGridTextColumn.EditingElementStyle>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Text" Value="{Binding s}" />
<Setter Property="Background" Value="Red" />
</Style>
</DataGridTextColumn.EditingElementStyle>
</DataGridTextColumn>
数据网格单元格显示红色背景,但里面的数字没有更新为非格式化值。
感谢您的帮助
您需要在父级删除字符串格式(覆盖 EditingElementStyle)- 而是仅在 EditingElementStyle 的样式中为绑定表达式设置字符串格式- 但也为常规 ElementStyle(非- 编辑模式)这是一个 TextBlock 风格:
<DataGridTextColumn Header="s" ElementStyle="{StaticResource TextColumnWhite}">
<!-- editing view -->
<DataGridTextColumn.EditingElementStyle>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Text" Value="{Binding s}" />
<Setter Property="Background" Value="Red" />
</Style>
</DataGridTextColumn.EditingElementStyle>
<!-- not editing view -->
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Text" Value="{Binding s, StringFormat=N2}" />
<Setter Property="Background" Value="Transparent" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
您也可以直接在 DataGridTextColumn 中添加 StringFormat
,如下所示:
<DataGridTextColumn Header="s" Binding="{Binding s, StringFormat=N2}"
HeaderStyle="{StaticResource TextColumnWhite}"/>
我正在尝试创建一个数据网格,当用户输入值并按下回车键时,它会以 2 位小数精度显示数据。
然而,当他们点击编辑它时,我希望他们能够再次查看整个数字。
我目前拥有的是:
<DataGridTextColumn Header="s" Binding="{Binding s, StringFormat=N2}" ElementStyle="{StaticResource TextColumnWhite}" >
<DataGridTextColumn.EditingElementStyle>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Text" Value="{Binding s}" />
<Setter Property="Background" Value="Red" />
</Style>
</DataGridTextColumn.EditingElementStyle>
</DataGridTextColumn>
数据网格单元格显示红色背景,但里面的数字没有更新为非格式化值。
感谢您的帮助
您需要在父级删除字符串格式(覆盖 EditingElementStyle)- 而是仅在 EditingElementStyle 的样式中为绑定表达式设置字符串格式- 但也为常规 ElementStyle(非- 编辑模式)这是一个 TextBlock 风格:
<DataGridTextColumn Header="s" ElementStyle="{StaticResource TextColumnWhite}">
<!-- editing view -->
<DataGridTextColumn.EditingElementStyle>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Text" Value="{Binding s}" />
<Setter Property="Background" Value="Red" />
</Style>
</DataGridTextColumn.EditingElementStyle>
<!-- not editing view -->
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Text" Value="{Binding s, StringFormat=N2}" />
<Setter Property="Background" Value="Transparent" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
您也可以直接在 DataGridTextColumn 中添加 StringFormat
,如下所示:
<DataGridTextColumn Header="s" Binding="{Binding s, StringFormat=N2}"
HeaderStyle="{StaticResource TextColumnWhite}"/>