2

给定一个带有 ListView 和 DataTemplate 的页面,并且在这个 DataTemplate 内部,我需要绑定到页面的 ViewModel 中存在的属性吗?

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

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

4

2 回答 2

2

你可以给你的页面一个Name并使用ElementName绑定

<Page x:Class="WpfApplication12.Page1"
      Title="Page1" Name="MyPage">

 <ListView beh:ItemClickToCommandBehavior.Command="{Binding Path=DataContext.NavCommand, ElementName=pageRoot}" />
于 2013-09-09T01:01:45.693 回答
0

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

有关如何DataTemplate.

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

于 2013-11-15T21:36:44.137 回答