2011-03-24 3 views
1

변환기로 항목의 Grid.Column 속성을 설정해야합니다.WPF 바인드 Grid.Column 속성

<ItemsControl.ItemTemplate> 
    <DataTemplate> 
     <TextBlock Text="{Binding Periodo.Inizio}"> 
      <Grid.Column> 
       <MultiBinding Converter="{StaticResource ItemColumnSetter}"> 
        <Binding RelativeSource="{RelativeSource Self}" /> 
        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="StartDate" /> 
        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="EndDate" /> 
        <Binding Path="Periodo.Inizio" /> 
       </MultiBinding> 
      </Grid.Column> 
     </TextBlock> 
    </DataTemplate> 
</ItemsControl.ItemTemplate> 

하지만 작동하지 않습니다 이 내 XAML입니다. 변환기가 잘 작동한다고 확신합니다.

+0

당신은 코드 샘플을 추가하는 것을 잊었다 :

이 같은이어야한다. –

+0

죄송합니다, 서식 오류가 발생했습니다. –

답변

4

TextBlock은 어떤 종류의 다른 컨트롤로 래핑됩니다. 즉, Grid.XXX 속성은 무시됩니다. 이들을 올바르게 적용하려면 ItemsControl.ItemContainerStyle에서 제본해야합니다.

<ItemsControl.ItemContainerStyle> 
    <Style> 
     <Setter Property="Grid.Column"> 
      <Setter.Value> 
       <MultiBinding Converter="{StaticResource ItemColumnSetter}"> 
        <Binding RelativeSource="{RelativeSource Self}" /> 
        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="StartDate" /> 
        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="EndDate" /> 
        <Binding Path="Periodo.Inizio" /> 
       </MultiBinding> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</ItemsControl.ItemContainerStyle> 
+0

괜찮습니다. 작동합니다 ... –

+0

에 감사하지만 ColumnSpan으로 작업하지 마십시오 ... –

+0

이와 같은 세터를 사용 했습니까? ... '그러면 바인딩이나 변환기에 문제가있을 수 있습니까? –