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

本文关键字:上下文 属性 Win RT 绑定 | 更新日期: 2023-09-27 18:30:40

给定一个页面,其中包含一个带有数据模板的列表视图,并且在此数据模板中,我需要绑定到页面的视图模型中存在的属性?

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

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

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

您可以为页面提供一个Name并使用ElementName绑定

<Page x:Class="WpfApplication12.Page1"
      Title="Page1" Name="MyPage">
 <ListView beh:ItemClickToCommandBehavior.Command="{Binding Path=DataContext.NavCommand, ElementName=pageRoot}" />

为页面提供Name并使用ElementName在绑定中引用该名称是最简单的方法。

有关如何在 DataTemplate 内绑定命令的完整说明,请参阅本教程。

在页面上保留(或忘记重命名)页面名称pageRoot是不好的。添加更多同名页面后,您最终会弄乱命令绑定、导航等。