【发布时间】:2011-09-03 09:03:58
【问题描述】:
我在 XAML 中定义了以下 ItemsControl:
<UserControl.Resources>
<DataTemplate x:Key="myDataTemplate">
<Grid Margin="20">
<View:MyView Width="123" Height="212"/>
</Grid>
</DataTemplate>
</UserControl.Resources>
<Grid>
<ItemsControl ItemsSource="{Binding MyVMs}" ItemTemplate="{StaticResource myDataTemplate}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</Grid>
View:MyView 的 DataContext 会在所有 UI 元素呈现后分配。我很想知道,为什么会这样?
【问题讨论】:
-
您如何确定在呈现元素后分配 DataContext ?这是您可以在 UI 中看到的事情吗?还是您正在处理 DataContextChnaged 事件?
-
我在调用 InitializeComponent 和 Loaded evenHandler 之前检查了 DataContext。在第一种情况下,它为 null,并且在加载的事件处理程序中,它被分配给正确的 VM。
标签: wpf binding datatemplate itemscontrol