首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ItemsPanelTemplate问题

ItemsPanelTemplate问题
EN

Stack Overflow用户
提问于 2016-03-19 14:13:19
回答 1查看 93关注 0票数 0

我需要使用Grid作为PanelTemplate。这不是什么大不了的事,但我也需要在Grid中有其他的控件。所以我的ItemsControl是这样的:

代码语言:javascript
复制
<ItemsControl x:Name="itemscontname" ItemsSource="{Binding Fields}" Grid.Column="0"
              ItemsPanel="{StaticResource gridKey}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Button .../>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
    <ItemsControl.ItemContainerStyle>
         <Style>
            <Style.Setters>
                <Setter Property="Grid.Row" Value="{Binding RowNumber}" />
                <Setter Property="Grid.Column" Value="{Binding ColumnNumber}" />
            </Style.Setters>
         </Style>
    </ItemsControl.ItemContainerStyle>
</ItemsControl>

我的ItemsPanelTemplate:

代码语言:javascript
复制
<ItemsPanelTemplate x:Key="gridKey">
    <Grid Grid.Row="0" Grid.Column="0" >
        <Grid.RowDefinitions>
                ....
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
                ....
        </Grid.ColumnDefinitions>
     </Grid>
</ItemsPanelTemplate>

很好,很管用。但是在这个Grid中,我想要一个,比如说一个TextBlock

代码语言:javascript
复制
<ItemsPanelTemplate x:Key="gridKey">
    <Grid Grid.Row="0" Grid.Column="0" >
        <Grid.RowDefinitions>
                ....
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
                ....
        </Grid.ColumnDefinitions>
        <TextBlock Grid.Row="0" Grid.Column="0" 
                   Text="{Binding SomeTextFromVM}"/>
     </Grid>
</ItemsPanelTemplate>

当我这么做的时候,它会破坏一切。我该怎么解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-19 14:47:07

您通常会在Template of ItemsControl中添加元素,除了ItemsPanel模板之外,还会添加元素。

但是,不能将这些元素添加到ItemsPanel中的网格(由ItemsPresenter管理)。

代码语言:javascript
复制
<ItemsControl ...>
    <ItemsControl.Template>
        <ControlTemplate TargetType="ItemsControl">
            <Grid>
                ...
                <ItemsPresenter/>
                <TextBlock Grid.Row="0" Grid.Column="0" 
                           Text="{Binding SomeTextFromVM}"/> 
            </Grid>
        </ControlTemplate>
    </ItemsControl.Template>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid>
                ...
            </Grid>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        ...
    </ItemsControl.ItemTemplate>
    <ItemsControl.ItemContainerStyle>
        ...
    </ItemsControl.ItemContainerStyle>
</ItemsControl>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36102800

复制
相关文章

相似问题

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