DataGrid:Dynamic StringFormat

时间:2011-07-28 15:43:41

标签: wpf templates datagrid string-formatting

我面临一个我认为很容易解决的问题,但是......事实并非如此简单。

以下是这种情况:我创建了一个自定义UserControl,它继承自WPFToolkit的DataGrid(我需要在.NET 3.5中工作:/)。

此控件是显示财务值的矩阵,用户应该能够选择显示格式(百分比,绝对值,1或2位小数的百分比......)。

而且......也许我在这里只是愚蠢,但我无法解决它。 我的控件有一个自定义DependencyProperty,其中包含完整的市场数据参考,然后将参考的特定部分分派给特定属性(例如,价格差异转到ItemsSource)。 由于用户可以更改显示的内容(价格,价格差异,昨天的价格,其他随机财务资料......),显示格式将定期更改,并且应允许用户自行选择。

我的手机只关注Style中定义的ResourceDictionary

<Style x:Key="CellStyle" TargetType="{x:Type tk:DataGridCell}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type tk:DataGridCell}">
                    <Grid Background="{TemplateBinding Background}">
                        <ContentPresenter
                            HorizontalAlignment="Center"
                                      VerticalAlignment="Center"/>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

我不会使用Binding的{​​{1}}因为我没有绑定StringFormat(我在市场参照属性发生变化时将其设置在代码中)

我已经看过this answer, proposing a converter

然而,似乎我不知道应该在哪里添加转换器到单元格...

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

我最终通过在Binding中添加逻辑步骤解决了这个问题:现在我将ÌtemsSource设置为string[],这是从原始double[]生成的,使用需要时ToString(CurrentFormat):)