XAML:使用DataTemplate中的ListView内的DataTemplate绑定fiasco

时间:2011-04-30 11:36:23

标签: xaml binding combobox relativesource

您好我为ViewModel获得了一个dataTemplate。

在这个DataTemplate中,我得到了一个ListView绑定到模板的集合,在那里我不能设置集合中项目的属性。

该属性的可用设置位于原始ViewModel中的另一个集合中,但我很难绑定它。

<DataTemplate DataType="{x:Type ViewModel}">

    <!-- Some irrelevant property bindings -->

    <ListView ItemsSource="{Binding Path=TheCollection}">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ComboBox ItemsSource="{Binding RelativeSource={RelativeSource SOMEAPPROPRIATERELATIVESOURCE}, 
                                           Path=AvailablePropertiesCollection}"  SelectedItem="{Binding Path=TheProperty}" />
                </DataTemplate>
            </ListView.ItemTemplate>
    </ListView>

是否有一些很好的方法可以绑定到顶级DataTemplate的项目?

1 个答案:

答案 0 :(得分:0)

我相信你会想要使用:

ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListView}}, 
    Path=DataContext.AvailablePropertiesCollection}"

这将绑定到ListView的数据上下文中的AvailablePropertiesCollection。