我有以下案例:
Window
|_Grid
|_ListView (MainProductGrid)
|_View
|_GridView
|_GridViewColumn
|_CellTemplate
|_DataTemplate
|_Label (LabelID)
现在,我想在LabelID中显示ListView中的行的索引。所以我做了以下事情:
<ListView ItemsSource="{Binding Path=ProductItems}" AlternationCount="{Binding Path=ProductItems.Count}">
...
对于标签,我有以下内容:
<Label x:Name="LabelID"
Content="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},
Path=(ListView.AlternationIndex)}"/>
但是它的LabelID只显示0..所以我认为TemplatedParent没有指向ListView控件..所以我怎么能纠正绑定指向“上级”,在我的情况下是ListView?
先谢了
################
更新:这里是完整的xaml。。
<Grid x:Name="mainGrid">
<ListView ItemsSource="{Binding Path=ProductItems}" AlternationCount="{Binding Path=ProductItems.Count}" x:Name="MainProductGrid">
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridViewColumn x:Name="gvc" Header="id" Width="auto">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Label Content="{Binding (ListView.AlternationIndex),RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Product name" DisplayMemberBinding="{Binding Path=ProductName}" Width="auto" />
</GridView>
</ListView.View>
</ListView>
</Grid>
3条答案
按热度按时间polhcujo1#
请尝试:
更新:这是正确的xaml,绑定应该设置为
RelativeSource=ListViewItem
,但网格列宽有问题:nnt7mjpx2#
你可以用
查找您上面的特定控件
smdncfj33#
因为你在一个
DataTemplate
的上下文中,你不能通过TemplatedParent
模式访问属性,至少在你的例子中是这样。[...]* Link我不确定,它可以在DataTemplate
中使用,因为我只在ControlTemplates
中见过它,但既然医生没说什么你能做的就是试着找到
Ancestor
。我还没有在
DataTemplates
中使用,所以没有保修。