WPF DataGrid에 조건부 서식을 적용하려고합니다. 요구 사항은 다음과 같습니다. 표의 모든 셀에 대해 내용이 정수인 경우 표시 형식은 소수점 이하 자릿수 여야합니다. 내용에 소수 자릿수가 있으면 문자열 서식에 정의 된 기본값으로 표시하십시오.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