3

人の名前を表示するために HeaderedItemsControl を使用しています。また、タイトル、名、姓の 3 つのラベルを含むヘッダーも表示したいと考えています。名前が短い場合、これは簡単です。ただし、ファーストネームが非常に長い場合、ヘッダーが名前と一致しなくなります。どうすればこれを修正できますか? ありがとうございました!

4

1 に答える 1

7

このクラスを本当に使用するかどうかわからない:

HeaderedItemsControl には、制限付きの既定のスタイルがあります。カスタムの外観を持つ HeaderedItemsControl を作成するには、新しい ControlTemplate を作成します。

とにかく、共有サイズでグリッドを使用できるものを並べるには、次のようにします。

<HeaderedItemsControl ItemsSource="{Binding Data}" Grid.IsSharedSizeScope="True">
    <HeaderedItemsControl.Template>
        <ControlTemplate TargetType="HeaderedItemsControl">
            <StackPanel>
                <ContentPresenter ContentSource="Header" />
                <ItemsPresenter  />
            </StackPanel>
        </ControlTemplate>
    </HeaderedItemsControl.Template>
    <HeaderedItemsControl.Header>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition SharedSizeGroup="A" />
                <ColumnDefinition SharedSizeGroup="B" />
            </Grid.ColumnDefinitions>
            <TextBlock Grid.Column="0" Text="Name" />
            <TextBlock Grid.Column="1" Text="Occupation" />
        </Grid>
    </HeaderedItemsControl.Header>
    <HeaderedItemsControl.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition SharedSizeGroup="A" />
                    <ColumnDefinition SharedSizeGroup="B" />
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="0" Text="{Binding Name}"/>
                <TextBlock Grid.Column="1" Text="{Binding Occupation}" />
            </Grid>
        </DataTemplate>
    </HeaderedItemsControl.ItemTemplate>
</HeaderedItemsControl>
于 2011-05-26T08:04:05.863 に答える