例子:
<ListView Name="lvAnyList" ItemsSource="{Binding}">
<ListView.View>
<GridView>
<GridViewColumn Header="xx" DisplayMemberBinding="{Binding XX}" CellTemplate="{DynamicResource MyDataTemplate}"/>
<GridViewColumn Header="yy">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding YY}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
如果我访问TextBlock内部,DataTemplate我将可以访问有关绑定路径的信息。但我不知道如何找到(从 开始TextBlock)它的包含GridViewColumn(在GridViewRowPresenter列列表中)并将其与网格GridViewColumn(从GridViewHeaderRowPresenter列列表)进行比较以获取标题的名称。
最后我应该有对:xx->XX,yy->YY
我可以使用这个找到所有TextBlocks里面的列表:ListView
GridViewRowPresenter gvrp = ControlAux.GetVisualDescendants<GridViewRowPresenter>(element).FirstOrDefault();
IEnumerable<TextBlock> entb = GetVisualDescendants<TextBlock>(gvrp);
我可以找到所有列表GridViewColumnHeaders:
GridViewHeaderRowPresenter gvhrp = ControlAux.GetVisualDescendants<GridViewHeaderRowPresenter>(element).FirstOrDefault();
而且我找不到TextBlocks和GridViewColumns...之间的联系
我希望这是可以理解的。