WPF绑定网格.Column属性

WPF绑定网格.Column属性,wpf,data-binding,grid,datatemplate,itemscontrol,Wpf,Data Binding,Grid,Datatemplate,Itemscontrol,我需要通过转换器设置项的Grid.Column属性。 这是我的xaml: <ItemsControl.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Periodo.Inizio}"> <Grid.Column> <MultiBinding Converter="{StaticResource Item

我需要通过转换器设置项的Grid.Column属性。 这是我的xaml:

<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>

但是不要工作。
我确信转换器工作正常…

您的文本块将被包装在另一个某种控件中,这意味着任何
网格.XXX
属性都将被忽略。要正确应用这些,需要在
ItemsControl.itemsContainerStyle
中进行绑定

应该是这样的:

<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>

您的文本块将被包装在另一个某种控件中,这意味着任何
网格.XXX
属性都将被忽略。要正确应用这些,需要在
ItemsControl.itemsContainerStyle
中进行绑定

应该是这样的:

<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>


您忘记添加代码示例。您忘记添加代码示例。您是否使用了这样的setter?i、 e.
它应该可以工作,也许绑定或转换器中有问题?好的,问题是Math.天花函数返回一个双精度。现在我将其转换为int32,一切正常。谢谢你会用这样的二传手吗?i、 e.
它应该可以工作,也许绑定或转换器中有问题?好的,问题是Math.天花函数返回一个双精度。现在我将其转换为int32,一切正常。谢谢