如何在 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 属性。
您可以为页面提供一个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是不好的。添加更多同名页面后,您最终会弄乱命令绑定、导航等。