У меня есть DataGridTextColumn, который принимает числа из таблицы базы данных, называемой Numbers. Если число в ячейке положительное, чем я хочу, чтобы следующий DataGridTextColumn имел слово «Positive» внутри. Я пробовал с помощью IConverter Styles, но все еще не знаю, как это сделать. Я надеюсь, что кто-то может мне помочь.Изменение DataGridCell, если число положительное или отрицательное
Это мой код до сих пор:
<DataGrid Grid.Row="0" Grid.Column="1" AutoGenerateColumns="False" IsReadOnly="false" CanUserAddRows="True" Margin="5,5,10,5" ItemsSource="{Binding ElementName=Numbers}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Num}" Header="Number" FontSize="16"/>
<DataGridTextColumn Header="Positive/Negative" FontSize="16">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Text" Value="{Binding Amount, Converter={StaticResource PositiveNegativeConverter}}"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid>
У меня также есть это внутренние ресурсы:
<local:PositiveNegativeConverter x:Key="PositiveNegativeConverter"/>
</UserControl.Resources>
Мой конвертер выглядит следующим образом:
class PositiveNegativeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
bool revert = (parameter as string).StartsWith("-");
string stringValue = value as string;
string compareValue = parameter as string;
if (revert)
{
return "Negative";
}
else
return "Positive";
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
}
Я получаю NullReferenceException в: BOOL Revert = (параметр в виде строки) .StartsWith ("-"); Может быть, becouse Num возвращает двойные числа, а не строки? – Georg
О, теперь он работает ... Мне нужно сначала преобразовать значение в String с помощью метода ToString(). Thx Cristian – Georg
Я принял Кристиан ответить, но только любопытство есть ли возможность показать тексты разного цвета? Положительный с зеленым и негативным цветом? – Georg