例:
<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
...
これが理解できることを願っています。