我有两个系列。
'OuterCollection'集合包含'InnerCollection'集合和名为'OuterProperty'的属性。在我的'InnerCollection'中,它只包含一个名为'InnerProperty'的属性。
现在我的ViewModel包含1个'OuterCollection'。并将其设置为控件的数据上下文。所以很容易设置。
ViewModel
{
OuterCollection;
}
OuterCollection
{
InnerCollection;
OuterProperty;
}
InnerCollection
{
InnerProperty;
}
现在在代码中,我希望能够在我的'InnerCollection'的上下文中从触发器访问我的'OuterProperty'我该怎么做?如果我不能这样做,是否有另一种方法可以实现这一目标?
这是我的尝试:
<ListView ItemsSource="{Binding Path=OuterCollection}" />
<ListView.View>
<GridView>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding Path=InnerCollection}">
<ListBox.ItemTemplate>
<DataTemplate>
<Image>
<Image.Style>
<Style TargetType="Image">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=InnerProperty}" Value="blah" />
<Condition Binding="{Binding Path=DataContext.OuterCollection.OuterProperty, RelativeSource ={RelativeSource FindAncestor, AncestorType={x:Type ListView}}, Converter={StaticResource IsStringNullOrEmpty}}" Value="true" />
</MultiDataTrigger.Conditions>
<Setter Property="ToolTip">
<Setter.Value>
<TextBlock Text="test"/>
</Setter.Value>
</Setter>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>