【问题标题】:DelegateCommand in Grid/ListView网格/列表视图中的委托命令
【发布时间】:2013-10-12 00:45:02
【问题描述】:

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

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

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

也许Windows-Store Apps 中有ListView.ItemCommand Event

【问题讨论】:

    标签: c# .net listview data-binding windows-store-apps


    【解决方案1】:

    这是因为当您在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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-19
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2018-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多