2

我有两个decimal数据类型列;我希望它们像这样显示:

  • 第 1 列 ( ColumnWithNoDollarSign)的值前面没有“$”符号
  • 第 2 列 ( ColumnWithDollarSign) 的值前面将有一个“$”符号

这是我的 XAML 目前的样子:

<ig:XamDataGrid Name="xamDataGrid"                        
                IsGroupByAreaExpanded="False"
                DataSource="{Binding Rows, Mode=OneWay}">
    <ig:XamDataGrid.Resources>
        <Style TargetType="{x:Type Editors:XamNumericEditor}">
            <Setter Property="HorizontalContentAlignment" Value="Left" />
            <Setter Property="FontSize" Value="12" />
        </Style>
        <Style TargetType="{x:Type Editors:XamCurrencyEditor}">
            <Setter Property="HorizontalContentAlignment" Value="Left" />
            <Setter Property="FontSize" Value="12" />
        </Style>
    </ig:XamDataGrid.Resources>
    <ig:XamDataGrid.FieldLayoutSettings>
        <ig:FieldLayoutSettings AutoGenerateFields="False"/>
    </ig:XamDataGrid.FieldLayoutSettings>
    <ig:XamDataGrid.FieldLayouts>
        <ig:FieldLayout Key="layout">
            <ig:Field Name="ColumnWithNoDollarSign" Label="Column 1"/>
            <ig:Field Name="ColumnWithDollarSign" Label="Column 1"/>
        </ig:FieldLayout>
    </ig:XamDataGrid.FieldLayouts>
</ig:XamDataGrid>

正如我所看到的,问题在于XamCurrencyEditor我应用的样式覆盖了所有decimal列。我只希望它覆盖其中一decimal列。我该怎么做呢?

4

1 回答 1

5

XamNumericEditor 是否代表不带 $ 的格式?如果是这样,你能不能只指定每列使用的样式,即:

<ig:XamDataGrid.FieldLayouts>
    <ig:FieldLayout Key="layout">
        <ig:Field Name="ColumnWithNoDollarSign" Label="Column 1" Style="{StaticResource XamNumericEditor}"/>
        <ig:Field Name="ColumnWithDollarSign" Label="Column 1" Style="{StaticResource XamCurrencyEditor}"/>
    </ig:FieldLayout>
</ig:XamDataGrid.FieldLayouts>

尽管我建议将所有样式信息移动到单个文件(例如 App.xaml)中,而不是在多个位置重新定义它。

于 2011-03-07T16:34:18.527 回答