WPF DataGridに条件付き書式を適用しようとしています。要件は次のとおりです。グリッド上の任意のセルについて、内容が整数の場合、表示形式は小数点以下第0位にする必要があります。内容に小数点以下の桁がある場合は、文字列形式で定義されているデフォルト値に表示します。WPF DataGridCellの条件付き書式設定
このような条件付き書式をどのように達成することができるかについて、誰かが考えていますか?私は小数点の存在を確認できるコンバータを作成しましたが、私はこれを自分のXAMLでセルスタイルまたはテキストカラムにどのように適用できるかを考え出すことができませんでした。
セルスタイル - 私はこのコラム
<DataGridTextColumn x:Key="ColumnName"
Header="ColumnName"
SortMemberPath="MyColumnSort"
Binding="{Binding myColBinding, StringFormat={}{0:N2}}"
IsReadOnly="True"
Width="40" />
コンバータに適用されるスタイルを適用するだろう - - 私はこれを使用します。これは、私が
<Style x:Key="MyCellStyle" TargetType="DataGridCell">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
</Style>
グリッド列を定義したいスタイルですこのスタイルが適用されるかどうかを判断します。
public class NoDecimalConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int converted;
int.TryParse(value.ToString(), out converted);
value.ToString();
return int.TryParse(value.ToString(), out converted);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
私は以下のように私のセルスタイルにdatatriggerを追加することによって、それを実行しようとしましたが、私はタイプ 『System.Windows.Controls.DataGridCell』オンスタイルプロパティ 『StringFormat』が見つかりません」というエラーを得ました。 "
<Style x:Key="MyCellStyle" TargetType="DataGridCell">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Style.Triggers>
<DataTrigger Binding="{Binding NoDecimalConvertor}" Value="False" >
<Setter Property="StringFormat" Value="true" />
</DataTrigger>
</Style.Triggers>
</Style>
私は、任意のガイダンスがこれにアプローチする最良の方法にとしていただければ幸いですので、日本に対して私の頭を強打されています。
ありがとうございました。それは私が必要としていた通りに正確に機能 – DB101