2016-04-04 20 views
0

私は、ビューモデル内のコレクションにバインドされたItemsControlを持つListBoxを持っています。私は、DataTemplate内のグリッドカラムでスターサイジングを使用し、そのカラム内の要素(進捗バー)を伸ばして設定しようとしています。これは、通常、グリッド内のすべての利用可能な水平スペースを占有しますが、ItemsControlにネストされていますが、これはそうではないようです。私は&を少し読んだことがありますが、これらのコントロールを一緒に使用することで既知の問題があるようです。これには解決策がありますか?ItemsControlのスターサイジンググリッド列?

<ListBox> 
    <ItemsControl ItemsSource="{Binding WebMappingSourcesCollection}"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Grid 
        ShowGridLines="True" 
        Grid.IsSharedSizeScope="true" 
        > 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="Auto"/> 
         <ColumnDefinition Width="Auto"/> 
         <ColumnDefinition Width="*"/> 
         <ColumnDefinition Width="Auto"/> 
        </Grid.ColumnDefinitions> 

        <CheckBox 
         Grid.Column="0" 
         HorizontalAlignment="Center" /> 
        <TextBlock 
         Grid.Column="1" 
         Text="{Binding Name}"/> 
        <ProgressBar Grid.Column="2" 
         Minimum="0" 
         Maximum="100" 
         Value="30" 
         HorizontalContentAlignment="Stretch"               
         HorizontalAlignment="Stretch"  
         MaxHeight="15" 
        /> 
        <!-- etc. etc. --> 
+0

ListBoxで 'Horizo​​ntalContentAlignment =" Stretch "を試しましたか? –

+0

残念ながら幸運はありません。 ListBoxの外側でうまく動作します – Hardgraf

+2

ItemContainerStyleのスタイル設定ツールを介して、親ListBoxとListBoxItemの両方で使用された場合と同じ結果になりますか? –

答えて

2

以下のようなItemContainerStyleを与えることによって、あなたのリストボックスの項目にHorizontalContentAlignmentを設定してみてください。

<ListBox> 
    <ListBox.ItemContainerStyle> 
     <Style TargetType="ListBoxItem"> 
      <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
     </Style> 
    </ListBox.ItemContainerStyle> 
</ListBox> 
+1

[ListBoxItem Horizo​​ntalContentAlignmentは、リストボックスの全幅にわたって延伸します] 、このように.. +1 –

関連する問題