2013-10-04 25 views
1

爲什麼DelegateCommand在我的Listview中不起作用?Grid/ListView中的DelegateCommand

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

但是,當我把我的按鈕放在我的列表視圖外時,它工作。我做錯了什麼?可能有ListView.ItemCommand EventWindows-Store Apps

回答

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> 
相關問題