私の知る限り、これは不可能です
その理由は、ListBoxがレンダリングされると、次のようにレンダリングされるためです(他の質問で使用したのと同じコードを参照していると仮定します)。
<Canvas>
<ListBoxItem>
<ContentPresenter>
<Grid>
<TextBlock />
<Line />
</Grid>
</ContentPresenter>
</ListBoxItem>
<ListBoxItem>
<ContentPresenter>
<Grid>
<TextBlock />
<Line />
</Grid>
</ContentPresenter>
</ListBoxItem>
<ListBoxItem>
<ContentPresenter>
<Grid>
<TextBlock />
<Line />
</Grid>
</ContentPresenter>
</ListBoxItem>
...
</Canvas>
ご覧のとおり、各ListBoxItemはネストされたコントロールのグループとしてレンダリングされます。すべてのTextBlockがすべて同じ親を共有しているわけではないため、すべてのLineの上にすべてのTextBlockを描画することはできません。また、ZIndexは、同じ親コンテナ内にあるアイテムを注文するために使用されます。
回避策は、互いに重ねて描画された2つの別々のItemsControlを使用することです。したがって、すべての線はBottom ItemsControlに描画され、すべてのTextBlockはTopItemsControlに描画されます。
<Grid>
<ItemsControl ItemsSource="{Binding MyData}"
ItemTemplate="{DynamicResource MyLineTemplate}" />
<ItemsControl ItemsSource="{Binding MyData}"
ItemTemplate="{DynamicResource MyTextBlockTemplate}" />
</Grid>