基本的に次のように設定されたビューがあります。
<Grid>
<ViewBox>
<Grid>
<ItemsControl ItemsSource="{Binding MyItems}"
ItemTemplate="{Binding Source={StaticResource MyItemsDataTemplate}}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</Grid>
</ViewBox>
</Grid>
ここで使用されるDataTemplateは、次のように減らすことができます。
<DataTemplate x:Key="AreaItemDisplayDataTemplate">
<Canvas Grid.ZIndex={Binding Z}>
<Grid>
// an shape is displayed here...
</Grid>
</Canvas>
これで、ZIndexが個々のアイテムのZプロパティにバインドされることが期待されます。コードをデバッグすると、Zプロパティゲッターが期待どおりにアクセスされることもわかります(たとえば、propertychangedイベントを発生させるたびに)。したがって、バインディングが正しく機能すると想定します。
ただし、ZIndexは期待どおりに機能していません。値へのバインドは、実際に表示されるZオーダーには影響しません。このコードのどこが間違っているのですか?