为什么ItemsControl项目的DataContext在渲染后分配

时间:2011-05-27 12:24:43

标签: wpf binding datatemplate itemscontrol

我在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元素之后被分配。我很想知道,为什么会这样?

1 个答案:

答案 0 :(得分:4)

在呈现元素后未设置DataContext。如果是这种情况,您会看到您的元素呈现两次,一次是在DataContext为null时,第二次是在设置DataContext并评估绑定时。

根据您的描述,您在构造函数中进行了断点或跟踪。在构造类之前,不能在类上设置属性!

相关问题