Я работаю над настольной игрой, чтобы получить контроль над WPF, и я застрял после того, как пробовал всю ночь, чтобы эта часть работала.WPF DataTrigger
Этот код принадлежит к пользовательскому управлению «House» и отлично работает на дизайнере. Я могу выбрать объект «дом» и изменить свойство HouseType на сетке свойств и увидеть желаемый эффект. Но во время выполнения, если я изменяю одно и то же свойство, ничего не происходит!
<DrawingBrush x:Key="emptyHouseBrush">
<DrawingBrush.Drawing>
<GeometryDrawing Geometry="M0,0 100,100 M0,100 100,0">
<GeometryDrawing.Pen>
<Pen Brush="Black" />
</GeometryDrawing.Pen>
</GeometryDrawing>
</DrawingBrush.Drawing>
</DrawingBrush>
<DataTemplate DataType="{x:Type m:House}">
<Border x:Name="border" BorderThickness="2" >
<Grid x:Name="grid" >
</Grid>
</Border>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=HouseType}" Value="Neutral">
<Setter TargetName="border" Property="BorderBrush" Value="Black"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=HouseType}" Value="Forbidden">
<Setter TargetName="border" Property="BorderBrush" Value="Black"/>
<Setter TargetName="grid" Property="Background" Value="{StaticResource ResourceKey=emptyHouseBrush}"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=HouseType}" Value="Borders">
<Setter TargetName="border" Property="BorderBrush" Value="#FF7A6D34"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=HouseType}" Value="Homeland">
<Setter TargetName="border" Property="BorderBrush" Value="#FFFFD200"/>
<Setter TargetName="border" Property="Background" Value="#54FBE681"/>
</DataTrigger>
<Trigger SourceName="border" Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Background" Value="#645CAEF9"/>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</Control.Resources>
<ContentControl>
<m:House x:Name="house" HouseType="Neutral"></m:House>
</ContentControl>
</UserControl>
Я попытался с помощью свойства по умолчанию, свойство зависимостей, реализуя интерфейс IPropertyChanged, пытался переместить свойство контроля и повторяя все выше ... и до сих пор ничего.
Что мне не хватает? Как я могу изменить управление границей (и фоном) после изменения этого свойства?
Заранее спасибо.
Marcelo