如何绑定Win RT中当前上下文之外的属性?

时间:2013-09-09 00:42:02

标签: c# prism winrt-xaml

给定一个包含带有DataTemplate的ListView的页面,并且在此DataTemplate中我需要绑定到页面的ViewModel中存在的属性?

<GridView ItemsSource="{Binding Applications}">
<GridView.ItemTemplate>
<DataTemplate>
<ListView beh:ItemClickToCommandBehavior.Command="{Binding NavCommand}"/>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>

为简洁起见,缩短了代码。请注意,我想绑定位于页面DataContext中的NavCommand属性。

2 个答案:

答案 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。