2

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の1つだけをオーバーライドしたい。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 に答える