【发布时间】:2015-04-12 21:59:08
【问题描述】:
我有一个像这样应用于 ListBoxItems 的 XAML DataTemplate。注意底部附近的网格。我想做的是根据文本的值更改绑定文本的颜色,如“状态:错误”中的“错误”为红色。
<DataTemplate x:Key="ItemTemplate">
<Border BorderBrush="Gray" BorderThickness="1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="3*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Rectangle Grid.Row="0" Grid.Column="0">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#FFA9A9A9" Offset="1.0"/>
<GradientStop Color="#FFF4F4F5" Offset="0.0"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<Label Content="{Binding Name}" FontSize="22" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center"/>
<Rectangle Grid.Row="1" Grid.Column="0" Grid.RowSpan="3">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#FFF0F0F1" Offset="1.0"/>
<GradientStop Color="#FFF4F4F5" Offset="0.0"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<Grid Grid.Row="1" Grid.Column="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Label Content="Status:"/>
<Label Content="{Binding Status}" Grid.Column="1"/>
</Grid>
<Label Content="{Binding Bookmark}" ContentStringFormat="Last Bookmark: {0}" Grid.Row="3" Grid.Column="0"/>
</Grid>
</Border>
</DataTemplate>
如何从后面的代码 (C#) 更改绑定状态 <Label> 中文本文本的颜色?
(或者,如果不是来自后面的代码,XAML 中的情况如何?状态可以有 3 个文本值(Queued、Running 和 Error),每个都与分配的颜色(蓝色、绿色和红色)匹配)
【问题讨论】:
-
使用
<DataTrigger。
标签: c# xaml datatemplate