[WPF] ItemsControl没有完全加载@Loaded事件

时间:2009-10-20 08:53:30

标签: wpf xaml itemscontrol loaded

我有一个可能很简单的问题,我似乎无法弄明白:

我已设置ItemsControl设置了datacontext,并将数据显示为CheckboxesTextBlocks对:

<ItemsControl Name="listTaskTypes" Grid.Row="1" Grid.Column="2" Grid.RowSpan="2" ItemsSource="{Binding}" Margin="10,0,0,0" VerticalAlignment="Top" Loaded="listTaskTypes_Loaded">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <CheckBox Name="checkBoxTypeId" Tag="{Binding Path=TaskTypeID}"/>
                <TextBlock FontSize="11pt" FontFamily="Helvetica" Text="{Binding Path=Text}" />
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

我的问题是,在Loaded的{​​{1}}事件中,复选框尚不存在。如果ItemsControl完全加载或者这不可能,我怎么能得到一个事件?

2 个答案:

答案 0 :(得分:0)

listTaskTypes.ItemContainerGenerator.StatusChanged事件处理程序可以为您提供有关ItemsControl上创建的每个项目的通知。

Yeah Loaded只是ItemsControl加载的事件,那时可能没有创建项目。只是好奇你想要在这里实现什么?我想你是想在后面的代码中获取CheckBox的实例?使用绑定可能有更好的方法来实现您的目标。

答案 1 :(得分:0)

尝试DataContextChanged活动!

当DataContext更改时,控件应该是Loaded,并且您可以确定它也设置了DataContext。

希望这有帮助