Xaml 数据绑定ListView项模板用户控件

Xaml 数据绑定ListView项模板用户控件,xaml,win-universal-app,Xaml,Win Universal App,我的Windows通用页面上有一个列表视图。我正在使用UserControl定义我的ItemTemplate,这样我就可以使用RelativePanel和VisualStateManager根据屏幕大小控制我的项目的显示方式 <ListView ItemsSource="{Binding Path=AllThings}" ItemContainerStyle="{StaticResource ListViewItemStyle}"> <ListVie

我的Windows通用页面上有一个列表视图。我正在使用UserControl定义我的ItemTemplate,这样我就可以使用RelativePanel和VisualStateManager根据屏幕大小控制我的项目的显示方式

<ListView ItemsSource="{Binding Path=AllThings}"
          ItemContainerStyle="{StaticResource ListViewItemStyle}">
    <ListView.ItemTemplate>
         <DataTemplate>
             <local:CrossingControl />
         </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

我在UserControl中有一个按钮,我想将其命令绑定到ViewModel中的一个命令属性,该属性是列表本身的DataContext

<UserControl ...>
    <RelativePanel>
    <StackPanel x:Name="crossedEntryPanel">
        <Button Command="{Binding DataContext.DeleteCommand,
                          RelativeSource={RelativeSource Mode=TemplatedParent}}"
                                    CommandParameter="{Binding}"


您可以使用
Tag
属性保存
ListView
DataContext
,并在
UserControl

这是怎么做的

<ListView ItemsSource="{Binding Path=AllThings}" x:Name="listview"
                        ItemContainerStyle="{StaticResource ListViewItemStyle}">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <local:CrossingControl  Tag="{Binding DataContext,ElementName=listview}" />
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

<UserControl x:Name="usercontrol" ...>
    <RelativePanel>
    <StackPanel x:Name="crossedEntryPanel">
        <Button Command="{Binding Tag.DeleteCommand,ElementName=usercontrol}"
                                    CommandParameter="{Binding}"


这个怎么样:恐怕不能完全解决我的问题。windows Universal中似乎没有具有祖先类型的relativesource。将
删除命令
移动到
交叉控件
中如何?