为什么DelegateCommand
无法在Listview
中使用?
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<Button Command="{Binding OpenCommand}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
但是当我将我的按钮放在listview之外时它会起作用。我做错了什么?
也许ListView.ItemCommand Event
中有Windows-Store Apps
?
答案 0 :(得分:0)
这是因为当您在ItemTemplate
中绑定时,您的datacontext是当前项而不是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>