如何在Silverlight中更改数据行样式
我有以下XAML要更改如何在Silverlight中更改数据行样式,silverlight,xaml,datagrid,Silverlight,Xaml,Datagrid,我有以下XAML要更改单元格 <sdk:DataGrid Margin="10" Grid.Row="1" IsReadOnly="True" AutoGenerateColumns="False" x:Name="dgrdDataGrid" GridLinesVisibility="All"> <sdk:DataGrid.Columns> <sdk:DataGridTextColumn Binding=
单元格
<sdk:DataGrid Margin="10" Grid.Row="1" IsReadOnly="True" AutoGenerateColumns="False" x:Name="dgrdDataGrid" GridLinesVisibility="All">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Binding="{Binding FirstName}" Header="First Name" />
<sdk:DataGridTextColumn Binding="{Binding LastName}" Header="Last Name" />
<sdk:DataGridTemplateColumn Header="Subscribed" Width="*" SortMemberPath="IsSubscribed">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="No Information" x:Name="txtTextBlock" Width="100" VerticalAlignment="Center" Margin="5"/>
<i:Interaction.Triggers>
<ei:DataTrigger Binding="{Binding Path=IsSubscribed}" Value="true">
<ei:ChangePropertyAction TargetObject="{Binding ElementName=txtTextBlock}" TargetName="Text" Value="Verified" PropertyName="Text"/>
<ei:ChangePropertyAction TargetObject="{Binding ElementName=txtTextBlock}" TargetName="Foreground" Value="Red" PropertyName="Foreground"/>
<ei:ChangePropertyAction TargetObject="{Binding ElementName=txtTextBlock}" TargetName="Foreground" PropertyName="FontWeight">
<ei:ChangePropertyAction.Value>
<FontWeight>Bold</FontWeight>
</ei:ChangePropertyAction.Value>
</ei:ChangePropertyAction>
</ei:DataTrigger>
<ei:DataTrigger Binding="{Binding Path=IsSubscribed}" Value="false">
<ei:ChangePropertyAction TargetObject="{Binding ElementName=txtTextBlock}" TargetName="Text" Value="Not Verified" PropertyName="Text"/>
</ei:DataTrigger>
</i:Interaction.Triggers>
</StackPanel>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
大胆的
现在我想更改行的背景,这些行是IsSubscribed=true
,比如使用黄色
是否有可能基于我得到的XAML以某种方式执行此操作?如果您不关注MVVM,请添加如下事件
void dgrdDataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
DataGridRow row = e.Row;
var c = row.DataContext as YourDataGridOjbect;
if (c != null && c.IsSubscribed == true)
e.Row.Foreground = new SolidColorBrush(Colors.Yellow);
else
e.Row.Foreground = new SolidColorBrush(Colors.Red);
}