2

列を整列させるより良い方法はありますか? テキストが変更されると、3 列目と 4 列目があちこちに移動します。Width を * および auto に設定しようとしましたが、何も機能しないようです。

<ListBox Height="Auto" BorderThickness="0" MouseDoubleClick="OnMouseDoubleClick" ItemsSource="{Binding Path=Results}" SelectedItem="{Binding Path=Entry, Mode=TwoWay}" AlternationCount="2">              
   <ListBox.ItemTemplate>
      <DataTemplate>
         <Grid>
            <Grid.ColumnDefinitions>
               <ColumnDefinition MinWidth="150"></ColumnDefinition>
               <ColumnDefinition MinWidth="150"></ColumnDefinition>
               <ColumnDefinition MinWidth="150"></ColumnDefinition>
               <ColumnDefinition MinWidth="100"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <TextBlock Grid.Column="0" FontFamily="Sagoe UI" FontSize="14" 
                       Text="{Binding FullName}" Padding="2"  />
            <TextBlock Grid.Column="1" FontFamily="Sagoe UI" FontSize="14" 
                       Text="{Binding Company}" Padding="2" />
            <TextBlock Grid.Column="2" FontFamily="Sagoe UI" FontSize="14" 
                       Text="{Binding BusinessPhone}" Padding="2" />
            <TextBlock Grid.Column="3" FontFamily="Sagoe UI" FontSize="14" 
                       Text="{Binding EmailAddress}" Padding="2" >  
            </TextBlock>
         </Grid>                        
      </DataTemplate>
   </ListBox.ItemTemplate>
</ListBox>   
4

1 に答える 1

4

ListBox にGrid.IsSharedSizeScopeを設定し、すべてのグリッド列に一意のSharedSizeGroupを設定して試すことができます。これにより、列が整列するはずです。

<ListBox Grid.IsSharedSizeScope="True" Height="Auto" BorderThickness="0" MouseDoubleClick="OnMouseDoubleClick" ItemsSource="{Binding Path=Results}" SelectedItem="{Binding Path=Entry, Mode=TwoWay}" AlternationCount="2">              
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition SharedSizeGroup="A"></ColumnDefinition>
                            <ColumnDefinition SharedSizeGroup="B"></ColumnDefinition>
                            <ColumnDefinition SharedSizeGroup="C"></ColumnDefinition>
                            <ColumnDefinition SharedSizeGroup="D"></ColumnDefinition>
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Column="0" FontFamily="Sagoe UI" FontSize="14" Text="{Binding FullName}" Padding="2"  />
                        <TextBlock Grid.Column="1" FontFamily="Sagoe UI" FontSize="14" Text="{Binding Company}" Padding="2" />
                        <TextBlock Grid.Column="2" FontFamily="Sagoe UI" FontSize="14" Text="{Binding BusinessPhone}" Padding="2" />
                        <TextBlock Grid.Column="3" FontFamily="Sagoe UI" FontSize="14" Text="{Binding EmailAddress}" Padding="2" >  
                        </TextBlock>
                    </Grid>                        
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>   
于 2013-05-14T19:00:04.267 に答える