绑定到附加的 属性 Grid.Row 和 Grid.Column

Binding to attached property Grid.Row and Grid.Column

我需要绑定到 Grid.Row 和 Grid.Column 等附加属性,但它似乎不起作用。 我尝试了多种选择但没有成功,下面是 xaml 详细信息。

 <Grid>
                <Grid>
                    <Grid vm:GridHelper.RowCount="{Binding RowCount}"
                          vm:GridHelper.ColumnCount="2" />
                    <ItemsControl ItemsSource="{Binding ControlCollection}">
                        <ItemsControl.ItemContainerStyle>
                            <Style>
                                <Setter Property="Grid.Row" Value="{Binding Path=Row}" />
                                <Setter Property="Grid.Column" Value="{Binding Path=Column}" />
                            </Style>
                        </ItemsControl.ItemContainerStyle>
                        <ItemsControl.ItemTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding Text}" Margin="5,5,20,5" FontSize="12" 
                                           TextWrapping="WrapWithOverflow"
                                           Foreground="#AEAEAE" FontFamily="Tahoma" VerticalAlignment="Center"/>
                            </DataTemplate>
                        </ItemsControl.ItemTemplate>

                    </ItemsControl>
                </Grid>

为了使 ItemContainerStyle 中的 Grid.RowGrid.Column setter 有效,您必须使用 Grid 作为 ItemsControl 的 ItemsPanel:

<ItemsControl ItemsSource="{Binding ControlCollection}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid>
                <Grid.RowDefinitions>
                    ...
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    ...
                </Grid.ColumnDefinitions>
            </Grid>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    ...
</ItemsControl>