私のアプリケーションでDataGridセルのスタイルを作成しようとしています。 DataGridの数値セルをDataTriggerを使用して右揃えする方法があるかもしれません。これも可能ですか?私のDataGridのWPF Datagrid数値列を右揃え
私のスタイルはこれです:
<Style TargetType="{x:Type DataGrid}">
<Setter Property="AlternatingRowBackground">
<Setter.Value>
<SolidColorBrush Color="#CCCCCC" />
</Setter.Value>
</Setter>
<Setter Property="CanUserAddRows" Value="False" />
<Setter Property="CanUserDeleteRows" Value="False" />
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Offset="0" Color="#CCCCCC" />
<GradientStop Offset="1" Color="#FFFFFF" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="RowHeaderWidth" Value="0" />
<Setter Property="CellStyle">
<Setter.Value>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Color="#7777FF" />
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Setter.Value>
</Setter>
</Style>
私は多分コンテンツは、int型、ダブル、小数点(数値であるかどうかを検出するためにCellStyle上のトリガのいくつかの種類を追加すると思っています... )、それに応じてセルのスタイルを設定します。これは可能ですか?これについて考える
更新
私はいくつかのことを試してみたが、それはうまくいきませんでした。 IsNumericConverter
は
<DataTrigger Binding="{Binding Converter={StaticResource IsNumericConverter}}" Value="True">
<Setter Property="HorizontalContentAlignment" Value="Right" />
</DataTrigger>
:私はのように定義DataTrigger使用試み
public class IsNumericConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value is int || (value is decimal || value is double);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
}
をしかし、私は、コンバータにブレークポイントを設定するとI値は、行全体の型ではないことを得ます各個別のセル...
これは間違いなくこれです。私はすべてのセル/列(各列は1つの型の値を持つ)のスタイルを定義したかったので、数字の場合(double、int、decimal、...)、右揃えになります。 –
@Carles:上記の方法を使いやすくするために私の答えを更新しました。上記のメソッドを静的ユーティリティクラスのどこかに設定し、すべてのDataGridカラムをループする静的ユーティリティメソッドを追加すると、このメソッドをDataGridごとに1行追加することができます。おそらく、これはあなたのために良いでしょうか? –
私はそれを試してみましょう。ありがとう! –