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"on Grid,而是像这样在 Listbox 上设置它 -

 <ListBox Grid.IsSharedSizeScope="True">

并将其从Grid.

all这将使listboxItemstoshare the same size代替单个项目。

于 2012-11-24T17:42:04.867 回答