0

我正在使用 xceed datagridcontrol,我认为它与 DataGrid 非常相似。我使用业务对象类的 ObservableCollection 加载了网格行和列。到目前为止一切顺利,BO 中的所有属性都自动转换为网格列,行都显示得很好。

我想格式化一些列以货币格式显示。我已经阅读了一些与此相关的问题和答案,它们都使用绑定到列及其 stringFormat 属性。由于我没有在 XAML 中声明列,而是从我的 BO 中自动读取网格,因此我正在寻找一种方法来从后面的代码中更改格式。Winforms 中的 DataGridView1.DefaultCellStyle.Format 之类的东西。

谢谢

编辑:

好的...如果不可能,也欢迎 XAML 解决方案。

4

1 回答 1

1

另一个未回答的问题。啜泣啜泣。无论如何......经过几天的搜索和试验,我创建了一个数据模板并定义了一个 CurrencyConverter : IValueConverter 类:

    <local:CurrencyConverter x:Key="CC"/>
    <DataTemplate x:Key="CurrencyCellTemplate">
        <TextBlock Text="{Binding Converter={StaticResource CC}}"/>
    </DataTemplate>

并用这个设置样式:

        foreach (int idx in moneyColumns) {
            var col = TheGrid.Columns[idx];
            col.CellHorizontalContentAlignment = HorizontalAlignment.Right;
            DataTemplate DT = FindResource("CurrencyCellTemplate") as DataTemplate;
            col.CellContentTemplate = DT;
        }

也许这个自我答案可以在未来帮助某人。

于 2013-02-26T11:41:46.563 回答