Я создал DataTemplate
<DataTemplate DataType="{x:Type model:Person}">
<StackPanel>
<!-- Text box is binding to the person's Image property. -->
<TextBlock Text="{Binding Image}" />
<Border>
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<!-- Data trigger is binding to the same Image property. -->
<DataTrigger Binding="{Binding Image}" Value="{x:Null}">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#696969" Offset="0.0" />
<GradientStop Color="#2E2E2E" Offset="1.0" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</StackPanel>
</DataTemplate>
Класс Person
выглядит следующим образом:
public class Person
{
public string Image { get; set; }
}
Представленный триггер данных в шаблоне данных не работает должным образом. Независимо от того, предоставлю я значение для свойства Image
или нет, оно просто не будет рисовать фон кисти с линейным градиентом. С другой стороны, текстовый блок показывает содержимое свойства Image
, как и должно быть.
Я подумал, что, возможно, когда person.Image = null;
, тогда XAML фактически читает его как person.Image = string.Empty;
, но я попытался заменить Value="{x:Null}"
на Value=""
, и он все еще не работает.
Помогите пожалуйста, спасибо.