首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ItemsControl面板生成

ItemsControl面板生成
EN

Stack Overflow用户
提问于 2015-09-19 00:02:00
回答 1查看 53关注 0票数 0

有谁知道如何确定项目控制面板是否已生成?

我正在构建一个自定义控件,其中包含将Grid设置为ites面板的itemscontrol,但找不到从代码幕后获取itemscontrol面板的正确方法。

控件模板

代码语言:javascript
复制
    <Style TargetType="{x:Type local:DayTimeRange}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type local:DayTimeRange}">

                <Border Background="{TemplateBinding Background}"
                        BorderBrush="{TemplateBinding BorderBrush}"
                        BorderThickness="{TemplateBinding BorderThickness}">

                    <ItemsControl 
                                      Name="PART_ItemsControl" 
                                      AlternationCount="1"
                                      IsEnabled="{Binding HasTimeRange,RelativeSource={RelativeSource AncestorType=local:DayTimeRange}}">
                        <ItemsControl.ItemContainerStyle>
                            <Style>
                                <Setter Property="Grid.Row" Value="{Binding GridRow,Mode=OneWay}" />
                                <Setter Property="Grid.Column" Value="{Binding GridColumn,Mode=OneWay}" />
                                <Setter Property="Grid.RowSpan" Value="{Binding GridRowSpan,Mode=OneWay}" />
                                <Setter Property="Grid.ColumnSpan" Value="{Binding GridColumnSpan,Mode=OneWay}" />
                            </Style>
                        </ItemsControl.ItemContainerStyle>
                        <ItemsControl.ItemsPanel>
                            <ItemsPanelTemplate>
                                <Grid x:Name="PART_Panel" IsItemsHost="True"/>
                            </ItemsPanelTemplate>
                        </ItemsControl.ItemsPanel>
                    </ItemsControl>


                </Border>



            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

那么获得真正的Panel最好的方法是什么呢?

EN

回答 1

Stack Overflow用户

发布于 2015-09-19 00:41:28

您可以简单地使用它的Loaded事件并在那里访问它。类似于:

xaml:

代码语言:javascript
复制
<Grid>
    <ItemsControl Loaded="OnItemsControlLoaded">

    </ItemsControl>
</Grid>

代码隐藏:

代码语言:javascript
复制
    private void OnItemsControlLoaded(object sender, RoutedEventArgs e)
    {
        var itemsControl = sender as ItemsControl;
        if (itemsControl != null)
        {
            // use here
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32656431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档