wpf listbox width itemtemplate

¿Cómo puedo hacer que una columna en un cuadro de lista en WPF tenga el mismo ancho para todos los artículos?



listbox width (1)

Puede usar la propiedad adjunta IsSharedSizeScope . En su definición de plantilla, adjunte un "grupo de tamaño compartido" a cada columna, como este:

<Grid.ColumnDefinitions> <ColumnDefinition SharedSizeGroup="col1" /> <ColumnDefinition SharedSizeGroup="col2" /> </Grid.ColumnDefinitions>

... luego defina su ListBox como un alcance de tamaño compartido para que sepa dimensionar cada "grupo de tamaño" de la misma manera:

<ListBox Grid.IsSharedSizeScope="True">...</ListBox>

Tengo un ListBox con una ItemTemplate consiste en un TextBlock y un ComboBox . El problema es que el ancho del texto dentro del TextBlock no es el mismo para cada elemento y los controles del ComboBox no están alineados.
¿Cómo puedo configurar TextBlock en la plantilla para que todos los elementos tengan el mismo ancho, que es el más ancho?

Aquí está mi xaml:

<ListBox MinHeight="100" ItemsSource="{Binding Trainees}"> <ListBox.ItemTemplate> <DataTemplate> <Grid Margin="1"> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <TextBlock VerticalAlignment="Center" Grid.Column="0"> <TextBlock.Text> <MultiBinding StringFormat="{}{0}, {1}"> <Binding Path="LastName" /> <Binding Path="FirstName" /> </MultiBinding> </TextBlock.Text> </TextBlock> <ComboBox HorizontalAlignment="Left" Grid.Column="1" ItemsSource="{Binding Source={StaticResource Functions}}" SelectedValue="{Binding Path=Function}" MinWidth="100" /> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox>