假设我有以下简单的类:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
public class PersonHolder
{
public Person CurrentPerson { get; set; }
public int ActiveId { get; set; }
}
现在我有一个带有 PersonHolder 类实例的网DataContext
格,并且在网格中我有一个StackPanel
绑定到CurrentPerson
of PersonHolder
- 显示它的数据:
<Grid>
<StackPanel x:Name="PersonPanel" DataContext="{Binding CurrentPerson}">
<TextBlock Text="{Binding Id}" />
<TextBlock Text="{Binding Name}" />
</StackPanel>
</Grid>
所以 - 对于这个问题:当有一个匹配的(是的,非常有用,但这只是一个非常简化的例子..)时,我怎样才能给StackPanel
绿色背景。我的想法是这是一个使用触发器的东西,但是我可以在我的触发器条件值中使用绑定吗?如果是这样,我可以做这样的事情:CurrentPerson
Id
ActiveId
PersonHolder
<Grid x:Name="Foo">
<StackPanel x:Name="PersonPanel" DataContext="{Binding CurrentPerson}">
<TextBlock Text="{Binding Id}" />
<TextBlock Text="{Binding Name}" />
<StackPanel.Triggers>
<DataTrigger Binding="{Binding Id}" Value="{Binding ElementName=Foo, Path=ActiveId}">
<Setter TargetName="PersonPanel" Property="Background" Value="Green" />
</DataTrigger>
</StackPanel.Triggers>
</StackPanel>
</Grid>
但这不起作用。我该如何解决这个问题?