我有一个绑定到适当 ViewModel 的用户控件。我在这个绑定到 ViewModel.Graph 属性的控件上有一个 GraphLayout (使用Graph# ):
<graph:ProductGraphLayout Graph="{Binding Path=Graph}" />
许多包含 ProductVertex 的 VertexControl 被放置在这个布局上。内容由 DataTemplate 表示,并使用 Style 应用主题:
<DataTemplate x:Key="VertexTemplate" DataType="{x:Type graph:ProductVertex}">
<TextBlock Text="{Binding Path=ID, Mode=OneWay}" />
</DataTemplate>
<Style TargetType="{x:Type graphsharp:VertexControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type graphsharp:VertexControl}">
<Border>
<Border.Style>
<Style TargetType="{x:Type Border}">
<Setter Property="BorderBrush" Value="#6695C4" />
<Setter Property="BorderThickness" Value="2" />
</Style>
</Border.Style>
<ContentPresenter Content="{TemplateBinding Vertex}" ContentTemplate="{StaticResource VertexTemplate}" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
如何根据 ProductVertex 属性更改容器 (VertexControl) 的样式,比如 IsCurrent?