Свяжите Сетку. Строка / Сетка. Столбец в DataTemplate

Надежда это не простофиля.

Я хотел бы смочь сделать следующее в XAML:

<DataTemplate DataType="{x:Type TestApp:ButtonVM}">        
        <Button 
                Grid.Column="{Binding GridColumn}" 
                Grid.Row="{Binding GridRow}" 
                Content="{Binding Path=Info}" 
        />
</DataTemplate>

Довольное привязка хорошо работает, но Сетка. Столбец и Сетка. Строка просто не существует в произведенном объекте. Даже, когда я не установил их на некоторое значение, не связывая (как в Сетке. Столбец = "1"). Я отследил приложение и видел, что в моей сетке никто никогда не устанавливает Сетку. Столбец и Сетка. Строка.

Какие-либо идеи?

15
задан Thorsten79 12 March 2010 в 13:06
поделиться

1 ответ

Решил эту проблему сам с помощью блогов.

Насколько я понял, вы просто не можете сделать привязку вложенного свойства внутри.

Следующий способ решает проблему мгновенно (ItemContainerStyle!):

<DataTemplate DataType="{x:Type TestApp:GridVM}">
        <ItemsControl ItemsSource="{Binding Path=Children}">
            <ItemsControl.ItemContainerStyle>
                <Style>
                    <Setter Property="Grid.Row" Value="{Binding GridRow}" />
                    <Setter Property="Grid.Column" Value="{Binding GridColumn}" />
                </Style>
            </ItemsControl.ItemContainerStyle>
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <Grid ShowGridLines="True"  Style="{Binding Path=Style}">
                        <Grid.RowDefinitions>
                            <RowDefinition Height=".5*" />
                            <RowDefinition Height=".5*" />                            
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width=".5*" />
                            <ColumnDefinition Width=".5*" />
                        </Grid.ColumnDefinitions>                        
                    </Grid>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
        </ItemsControl>
</DataTemplate>
22
ответ дан 1 December 2019 в 03:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: