[英]How to generate rows and columns of a grid in WPF MVVM without editing the view?
我知道 MVVM 背后的想法是将View与Viewmodel分开,而View中的代码隐藏是一件坏事。
这就是我在不遵循 MVVM (xaml.cs) 时生成特定列数的方式。
for (int i = 0; i < Constants.GRID_COLUMN_NUMBER; i++)
{
ColumnDefinition tempColumn = new ColumnDefinition();
gridName.ColumnDefinitions.Add(tempColumn);
}
由于从ViewModel访问网格以生成行/列是一件坏事,那么实现这一目标的最有效方法是什么?
使用带有代码隐藏的用户控件是可接受的解决方案吗?
您可以为此目的使用行为。 您不必在视图中添加代码,只需创建一个专用的 class 负责将网格生成为Behavior<Grid>
并将其添加到 xaml。
然后Behavior<Grid>
也可以单独进行单元测试。
Microsoft Blend 使用这种方法。
例如
public class DynamicColumn: Behavior<Grid> {}
你像这样使用它
<Grid>
<Interaction.Behaviors>
<DynamicColumn />
</Interaction.Behaviors>
<Grid>
您可以在此处找到更多信息: https://www.wpftutorial.net/Behaviors.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.