1

为什么DelegateCommand在我的 中不起作用Listview

<ListView>
    <ListView.ItemTemplate>
        <DataTemplate>
            <Button Command="{Binding OpenCommand}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

但是当我将按钮放在列表视图之外时它会起作用。我做错了什么?

也许里面ListView.ItemCommand EventWindows-Store Apps

4

1 回答 1

0

发生这种情况是因为当您在 中绑定时ItemTemplate,您的数据上下文是当前项,而不是 ListView 的数据上下文。如果你想使用 ListView 的 datacontext,你可以这样做:

<Button Command="{Binding DataContext.OpenCommand, RelativeSource={RelativeSource AncestorType=ListView}}" />

由于AncestorType不适用于 Windows 应用商店应用程序,因此使用ElementName应该可以:

<ListView Name="myListView">
    <ListView.ItemTemplate>
        <DataTemplate>
            <Button Command="{Binding DataContext.OpenCommand, ElementName=myListView}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>
于 2013-10-04T22:18:41.160 回答