C# 未遵守UniformGrid网格。行网格。列

C# 未遵守UniformGrid网格。行网格。列,c#,wpf,xaml,C#,Wpf,Xaml,从这个问题()开始,我仍然没有让我的按钮/文本块与视图模型中它们绑定到的行和列保持一致。我将只发布XAML,因为我知道行和列绑定是正确的(例如,LiveVisualTree告诉我行是1,列是1,但在网格上它显示了其他…) 如果你需要更多的代码,请告诉我。这是XAML的一小部分 <Grid DockPanel.Dock="Left" Background="Transparent" HorizontalAlignment="Stretch" VerticalAlignment="Stretc

从这个问题()开始,我仍然没有让我的按钮/文本块与视图模型中它们绑定到的行和列保持一致。我将只发布XAML,因为我知道行和列绑定是正确的(例如,LiveVisualTree告诉我行是1,列是1,但在网格上它显示了其他…)

如果你需要更多的代码,请告诉我。这是XAML的一小部分

<Grid DockPanel.Dock="Left" Background="Transparent" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MinWidth="800" Height="400">
      <ItemsControl ItemsSource="{Binding ObjCompositeCollection}">
                    <ItemsControl.ItemsPanel>
                           <ItemsPanelTemplate>
                               <UniformGrid DockPanel.Dock="Top" HorizontalAlignment="Stretch" 
                                    VerticalAlignment="Stretch" Name="objGrid" Grid.Row="1" 
                                    Rows="{Binding RowCount}"
                                    Columns="{Binding ColumnCount}"/>
                           </ItemsPanelTemplate>
                           </ItemsControl.ItemsPanel>
                                    <ItemsControl.ItemContainerStyle>
                                            <Style>
                                                <Setter Property="Grid.Row" Value="{Binding Row}"/>
                                                <Setter Property="Grid.Column" Value="{Binding Column}"/>
                                            </Style>
                                        </ItemsControl.ItemContainerStyle>
                                        <ItemsControl.Resources>
                                            <DataTemplate DataType="{x:Type engine:ObjA}">
                                                <Button Content="{Binding Id}" />
                                            </DataTemplate>
                                            <DataTemplate DataType="{x:Type engine:GridLabeller}">
                                                <TextBlock Text="{Binding HeaderName}"/>
                                            </DataTemplate>
                                        </ItemsControl.Resources>
                                    </ItemsControl>
                                </Grid>


WPF中的
UniformGrid
不关心
Grid.Row
Grid.Column
附加属性。您需要使用
行定义和
列定义创建
网格
,以便将这些属性设置为有效


您可以基于源属性
行计数
列计数
的值在视图中以编程方式创建
网格

a
UniformGrid
不关心
Grid.Row
Grid.Column
附加属性。你需要一个
网格
行定义
列定义
来设置这些属性以产生任何效果。真的吗?如何动态定义网格的行数和列数?您可以基于
RowCount
ColumnCount
属性的值,以编程方式在视图中创建
grid
。这不意味着这是可能的吗?这是一个UWP控件。在视图中以编程方式创建
网格
不会破坏MVVM,就像在XAML中创建相同的
网格
一样。当然,如果您想在多个视图中重用该功能,可以将其包装在自定义的
网格
类或行为中。只需使用一次即可。问题是单击按钮可确定网格的大小。Click在VM中被处理,因此不确定它将如何使视图为视图中的视图模型创建gridHandle
PropertyChanged
事件?