C# 未遵守UniformGrid网格。行网格。列
从这个问题()开始,我仍然没有让我的按钮/文本块与视图模型中它们绑定到的行和列保持一致。我将只发布XAML,因为我知道行和列绑定是正确的(例如,LiveVisualTree告诉我行是1,列是1,但在网格上它显示了其他…) 如果你需要更多的代码,请告诉我。这是XAML的一小部分C# 未遵守UniformGrid网格。行网格。列,c#,wpf,xaml,C#,Wpf,Xaml,从这个问题()开始,我仍然没有让我的按钮/文本块与视图模型中它们绑定到的行和列保持一致。我将只发布XAML,因为我知道行和列绑定是正确的(例如,LiveVisualTree告诉我行是1,列是1,但在网格上它显示了其他…) 如果你需要更多的代码,请告诉我。这是XAML的一小部分 <Grid DockPanel.Dock="Left" Background="Transparent" HorizontalAlignment="Stretch" VerticalAlignment="Stretc
<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
附加属性。您需要使用行定义和列定义创建网格
,以便将这些属性设置为有效
您可以基于源属性行计数和列计数的值在视图中以编程方式创建网格。aUniformGrid
不关心Grid.Row
和Grid.Column
附加属性。你需要一个网格
和行定义
和列定义
来设置这些属性以产生任何效果。真的吗?如何动态定义网格的行数和列数?您可以基于RowCount
和ColumnCount
属性的值,以编程方式在视图中创建grid
。这不意味着这是可能的吗?这是一个UWP控件。在视图中以编程方式创建网格
不会破坏MVVM,就像在XAML中创建相同的网格
一样。当然,如果您想在多个视图中重用该功能,可以将其包装在自定义的网格类或行为中。只需使用一次即可。问题是单击按钮可确定网格的大小。Click在VM中被处理,因此不确定它将如何使视图为视图中的视图模型创建gridHandlePropertyChanged
事件?