C# 以编程方式在WPF中添加/删除网格?
我是WPF的新手,以前偶尔使用WinForms,现在我仍在尝试了解WPF的想法,考虑到我的背景是嵌入式编码,这种想法似乎已经不存在了 在我的项目中,我需要创建一个网格面板“模板”,我将其称为“Fred”(在本例中,Fred只是一组图形化定制按钮),并基于外部事件以编程方式将多个实例生成到UI。我发现很难找到一个明显的方法来实现这一点(可能是因为可能有多种方法?),并且已经研究了ControlTemplates、样式和自定义元素。我怀疑解决办法在于后者,但我也担心我可能用错误的方式思考这个问题。对我来说,将Fred可视化为网格资源似乎是有意义的,当我需要创建一个新实例时,我可以通过编程方式调用它,但考虑到我发现很难“谷歌”这个东西,那么也许我在这方面完全错了 如果这有点含糊,我道歉 我的问题有两个:C# 以编程方式在WPF中添加/删除网格?,c#,wpf,C#,Wpf,我是WPF的新手,以前偶尔使用WinForms,现在我仍在尝试了解WPF的想法,考虑到我的背景是嵌入式编码,这种想法似乎已经不存在了 在我的项目中,我需要创建一个网格面板“模板”,我将其称为“Fred”(在本例中,Fred只是一组图形化定制按钮),并基于外部事件以编程方式将多个实例生成到UI。我发现很难找到一个明显的方法来实现这一点(可能是因为可能有多种方法?),并且已经研究了ControlTemplates、样式和自定义元素。我怀疑解决办法在于后者,但我也担心我可能用错误的方式思考这个问题。对
您正在寻找的概念是一个“ItemsControl”(它本身是一个可用的类,并且还有几个派生类,如
ListView
和ListBox
)与DataTemplate
结合使用
在本例中,您将使“Fred”成为DataTemplate
(通常是XAML中ItemControl
sitemtplate
属性的直接后代)。然后将ItemsSource
绑定到集合(对于运行时添加/删除,应该是observedcollection
)
所有这些都依赖于使用MVVM模式(来自WinForms,您可能没有)。我建议看一看Reed Copsey的优秀博客系列:或者只是谷歌“WPF和MVVM”来了解更多信息
要明确回答您的问题:
非常感谢。非常感谢。