【发布时间】:2021-11-20 12:06:36
【问题描述】:
如果我的DataGrid 中的数字大于零,我将无法更改颜色。
我试过IValueConverter,但不能真正让它工作。仅当我已经知道 DataGrid 中的值时它才有效。
这是我的 XAML。绿色是我能做的
用它下面的代码。我尝试将它与IValueConverter 绑定。
<DataGrid x:Name="dg_ProductlistGrid" ItemsSource="{Binding ProductCollection}" AutoGenerateColumns="False" IsReadOnly="True" Loaded="form1_load">
<DataGrid.ColumnHeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="BorderThickness" Value="1,1,1,1"/>
<Setter Property="Padding" Value="30,9,12,6"/>
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="ProduktID" Binding="{Binding Path=factProduct.ProductId}" Width="*" IsReadOnly="True"/>
<DataGridTextColumn Header="Navn" Binding="{Binding Path= factProduct.Name}" Width="*" IsReadOnly="True"/>
<DataGridTextColumn Header="Mængde" Binding="{Binding Path =QauntityNeeded }" Width="*" IsReadOnly="True"/>
<DataGridTextColumn Header="Rigtige Mængde" Binding="{Binding Path =FoundQauntity }" Width="*" IsReadOnly="True"/>
<DataGridTextColumn Header="Mangel" Binding="{Binding Path = Missing}" Width="*" IsReadOnly="True">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<Trigger Property="Text" Value="0">
<Setter Property="Background" Value="LightGreen"/>
</Trigger>
<Trigger Property="Text" >
<Setter Property="Background" Value="{Binding Path=Missing, Converter={StaticResource converter}}"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
这是我的IValueConverter:
public class Greaterthan : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
int input = (int)value;
if (input < 1)
{
return new SolidColorBrush(Colors.Red);
}
else
return DependencyProperty.UnsetValue;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
我该如何解决这个问题?
【问题讨论】:
标签: c# wpf xaml data-binding datagrid