我在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元素之后被分配。我很想知道,为什么会这样?
答案 0 :(得分:4)
在呈现元素后未设置DataContext。如果是这种情况,您会看到您的元素呈现两次,一次是在DataContext为null时,第二次是在设置DataContext并评估绑定时。
根据您的描述,您在构造函数中进行了断点或跟踪。在构造类之前,不能在类上设置属性!