【发布时间】:2021-04-18 04:38:19
【问题描述】:
我在基于DataTrigger 为DataGrid 中的Expander 着色时遇到问题。我尝试了很多东西,也尝试了很多线程,但没有运气。
我希望根据 ItemsSource 中的布尔值更改颜色。
下面是设置ItemsSource的代码:
private void SetDataGrid(ObservableCollection<SourceInfo> myinfoList)
{
var ColectList = new ListCollectionView(myinfoList);
ColectList.GroupDescriptions.Add(new PropertyGroupDescription("DrawNr"));
MyDataGrid.ItemsSource = ColectList;
}
下面是我的 XAML(check 是我在 itemsource 类中的参数):
<DataGrid ItemsSource="{Binding}"
Name="MyDataGrid"
Margin="244,10,20,7"
AutoGenerateColumns="True"
CanUserAddRows="False"
RowEditEnding="MyDataGrid_RowEditEnding"
Loaded="MyDataGrid_Loaded"
BorderBrush="{x:Null}"
Background="{x:Null}"
HorizontalGridLinesBrush="#FF646464"
VerticalGridLinesBrush="#FF646464"
FontFamily="Open Sans">
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Margin"
Value="0,0,0,5" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander IsExpanded="False"
BorderBrush="#FF002255"
Foreground="Black"
BorderThickness="1,1,1,5">
<Expander.Style>
<Style TargetType="{x:Type Expander}">
<Setter Property="Background"
Value="Red" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=check, RelativeSource={RelativeSource self}}"
Value="True">
<Setter Property="Background"
Value="Green" />
</DataTrigger>
</Style.Triggers>
</Style>
</Expander.Style>
<Expander.Header>
<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding DrawNr}" />
<TextBlock Text="{Binding ItemCount, StringFormat=Count: {0}}"
Margin="30,0,0,0" />
</StackPanel>
</StackPanel>
</Expander.Header>
<Expander.Content>
<ItemsPresenter />
</Expander.Content>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</DataGrid.GroupStyle>
</DataGrid>
DataGrid:
【问题讨论】:
标签: c# wpf binding datagrid datatrigger