在Datagridcell中使用HeaderedItemsControl不显示内容

时间:2016-12-26 09:26:16

标签: wpf xaml datagrid

我想在HeaderedItemsControl中显示DataGridTemplateColumn。但是,以下代码仅显示标题,但不显示内容。我哪里出错了?

<DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
        <HeaderedItemsControl ItemsSource="{Binding Days[0].Employee}">
            <HeaderedItemsControl.Template>
                <ControlTemplate TargetType="HeaderedItemsControl">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="1*"/>
                            <ColumnDefinition Width="30"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Column="0" Text="Employee"/>
                        <Button Grid.Column="1"></Button>
                    </Grid>
                </ControlTemplate>
            </HeaderedItemsControl.Template>
            <HeaderedItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal"></StackPanel>
                </ItemsPanelTemplate>
            </HeaderedItemsControl.ItemsPanel>
            <HeaderedItemsControl.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Name}"/>
                </DataTemplate>
            </HeaderedItemsControl.ItemTemplate>
        </HeaderedItemsControl>
    </DataTemplate>
</DataGridTemplateColumn.CellTemplate>

1 个答案:

答案 0 :(得分:1)

您忘记在模板中加入@XmlElement(defaultValue = "false") private boolean isCaseSensitive; 。所以你的控件只有标题,没有别的。只需添加它就可以解决问题:

ItemsPresenter

另外,你确定<ControlTemplate TargetType="HeaderedItemsControl"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="1*" /> <ColumnDefinition Width="30" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="22" /> <RowDefinition /> </Grid.RowDefinitions> <TextBlock Grid.Column="0" Text="Employee" /> <Button Grid.Column="1" /> <ItemsPresenter Grid.Row="1" Grid.ColumnSpan="2" /> </Grid> </ControlTemplate> 是一个集合吗?它看起来很奇怪。

作为奖励,您不必使用Days[0].Employee。您的模板非常简单,可以使用基本控件:

HeaderedItemsTemplate