0

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

我制作了一个ItemsControlwhich 有它的datacontext集合,并将数据显示为一对Checkboxesand TextBlocks

<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如果出现ItemsControl,复选框还不存在。ItemsControl当完全加载或者这不可能时,我怎样才能得到一个事件?

4

2 回答 2

1

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

是的,Loaded 只是 ItemsControl 加载事件,当时可能尚未创建项目。只是好奇你想在这里实现什么?我猜你想在后面的代码中获取 CheckBox 的实例?可能有更好的方法使用绑定来实现您正在寻找的东西。

于 2009-10-20T09:02:48.337 回答
0

试试DataContextChanged事件!

当 DataContext 改变时,控件应该被加载,你可以确定它也有一个 DataContext 集。

希望这可以帮助

于 2010-05-17T09:19:12.153 回答