如何从内部集合访问外部集合itemssource属性?

时间:2014-04-16 22:39:47

标签: c# wpf xaml collections binding

我有两个系列。

'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>

0 个答案:

没有答案