给定一个包含带有DataTemplate的ListView的页面,并且在此DataTemplate中我需要绑定到页面的ViewModel中存在的属性?
<GridView ItemsSource="{Binding Applications}">
<GridView.ItemTemplate>
<DataTemplate>
<ListView beh:ItemClickToCommandBehavior.Command="{Binding NavCommand}"/>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
为简洁起见,缩短了代码。请注意,我想绑定位于页面DataContext中的NavCommand属性。
答案 0 :(得分:2)
您可以为您的网页指定Name
并使用ElementName
绑定
<Page x:Class="WpfApplication12.Page1"
Title="Page1" Name="MyPage">
<ListView beh:ItemClickToCommandBehavior.Command="{Binding Path=DataContext.NavCommand, ElementName=pageRoot}" />
答案 1 :(得分:0)
为您的网页指定Name
并使用ElementName
在绑定中引用该名称是最简单的方法。
有关如何在DataTemplate
内绑定命令的完整说明,请参阅this tutorial。
PS。在页面上保留(或忘记重命名)页面名称 pageRoot 是不好的。添加更多具有相同名称的页面后,您最终会搞乱命令绑定,导航等.DS。