例子:
<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
...之间的联系
我希望这是可以理解的。