2011-08-01 2 views
0

내 아이템 컨트롤 안에 아이템이 사용자 컨트롤의 전체 너비를 차지하지 않습니다. 템플릿의 유형을 선택하기 위해 DataTemplateSelector (수동으로 작성된 클래스)를 사용하고 있습니다.Itemscontrol 실버 스트레칭

나는 게시물 Silverlight: Set Items Widths in ItemsControl to Stretch을 확인했지만 그것이 나를 위해 작동하지 않습니다. 항목이 자동으로 스트레칭되지 않고 전체 공간을 활용하지 않습니다. 도와주세요! 미리 감사드립니다.

<ItemsControl ItemsSource ="{Binding}" Margin="0,5,0,0" HorizontalContentAlignment="Stretch" > 
    <ItemsControl.ItemTemplate> 
     <DataTemplate>      
      <local:AddressFieldsTemplateSelector Content="{Binding}" x:Name="addressTemplateSelectorObject"> 
       <!-- TextBox template--> 
       <local:AddressFieldsTemplateSelector.TextBoxDataTemplate> 
        <DataTemplate>         
         <Grid Margin="0,0,0,5" HorizontalAlignment="Stretch" > 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="0.5*" /> 
           <ColumnDefinition Width=".1*" /> 
            <ColumnDefinition Width="*"/> 

          </Grid.ColumnDefinitions> 
          <TextBlock Text="{Binding AddressFieldName}" Grid.Column="0" Style="{StaticResource DefaultTheme_TextBlockStyle}"/> 
          <TextBox Text="{Binding AddressFieldValue, Mode=TwoWay}" Grid.Column="2" Style="{StaticResource TextBoxStyle}" TextWrapping="NoWrap" MaxLength="50" HorizontalAlignment="Stretch" /> 
         </Grid> 
        </DataTemplate> 
       </local:AddressFieldsTemplateSelector.TextBoxDataTemplate> 
      </local:AddressFieldsTemplateSelector> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 
+0

문제의 그림을 게시하여 문제의 실제 상황을 볼 수 있습니까? – StephenT

답변

0

datatemplate 내의 항목은 항상 별 너비로 인해 사용 가능한 모든 너비를 차지합니다. 문제는 itemscontrol 자체에서 발생할 가능성이 큽니다. itemscontrol이 StackPanel 또는 자동 너비 Grid 열에 포함되지 않았습니까? ItemsControl의 HorizontalAlignmentLeft으로 설정되어 있습니까?

+0

답장을 보내 주셔서 감사합니다. 예 Items 컨트롤은 눈금 안에 배치됩니다. 그 그리드는 스택 패널 안쪽에 배치됩니다. ItemsControl에 대해 HorizontalALignment 속성을 설정하지 않았으므로 기본값을 사용해야합니다. 하지만 그 영향을 미칠 항목이 스트레치 속성에 확실하지 않을까요? – Sai

+0

그리드에 너비가 있습니까? 그리고 StackPanel의 방향은 무엇입니까? – Danexxtone