18
比方說,我有以下簡單的類:在DataTrigger條件下使用綁定
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
的PersonHolder
的CurrentPerson
- 顯示其數據:
<Grid>
<StackPanel x:Name="PersonPanel" DataContext="{Binding CurrentPerson}">
<TextBlock Text="{Binding Id}" />
<TextBlock Text="{Binding Name}" />
</StackPanel>
</Grid>
所以 - 這個問題:我如何給StackPanel
綠色背景時CurrentPerson
有Id
匹配PersonHolder
的ActiveId
(是啊,非常有用,但這只是一個非常簡化的例子。))。我的想法是,這是一個使用觸發器的東西,但我可以在我的觸發條件值中使用綁定嗎?如果是這樣,我可以做這樣的事情:
<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>
但這不起作用。我該如何解決這個問題?