2

私はカスタムリストボックスを持っており、各アイテムにはボックスを表示する場所にグリッドが定義されています。SharedSizeGroupプロパティを使用して、幅を同じ長さに設定できます。ただし、親のListBox要素内のこれらすべてのアイテムでこのプロパティを共有するにはどうすればよいですか?

ListBox要素にもプロパティを設定しようとしましたが、うまくいきませんでした。

<ListBox
    ItemContainerStyle="{StaticResource MyStyle}"...>

<Style x:Key="MyStyle" TargetType="ListBoxItem">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ListBoxItem">
                <Grid Grid.IsSharedSizeScope="True">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Box" />
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Box" />
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Box" />
                    </Grid.ColumnDefinitions>
                    <Border Grid.Column="0">
                        <TextBlock Text="{Binding PropertyA}" />
                    </Border>
                    <Border Grid.Column="1">
                        <TextBlock Text="{Binding PropertyB}" />
                    </Border>
                    <Border Grid.Column="2">
                        <TextBlock Text="{Binding PropertyC}" />
                    </Border>
                </Grid>
4

1 に答える 1

2

Grid.IsSharedSizeScope="True"プロパティをに設定する代わりに、次のGridようにリストボックスに設定します-

 <ListBox Grid.IsSharedSizeScope="True">

から削除しGridます。

これによりall、代わりに個々のアイテムのlistboxItemstoが作成されます。share the same size

于 2012-11-24T17:42:04.867 に答える