WPF:如何在代码中动态创建控件和编辑控件

WPF: How to dynamically create controls and edit controls in code

我有一个 xaml,其中包含一个选项卡控件 (Name="MyTabControl")。我是 wpf 和代码的初学者,我想动态添加选项卡项,然后将列表框添加到每个创建的选项卡项。以下是我目前的代码。

ListBox listbox = new ListBox()
TabItem tab = new TabItem()
tab.AddChild(listbox)

MyTabControl.Add(tab)

我的问题是我无法弄清楚如何动态创建新选项卡,同时将列表框添加到每个新选项卡,然后将新选项卡添加到 MyTabControl。 然后,我希望能够在每个选项卡中单独访问每个列表框控件以编辑列表框内容。

这是如何用代码完成的?我如何访问创建的列表框控件以对其进行编辑?

WPF/UWP 和 XAML 的设计考虑了 MVVM 模式。虽然您可以使用其他方法,但这样做会损失大约 90% 的功能,并且 运行 会在每个其他角落出现问题。

在 MVVM 中,这只是公开一个集合并拥有一个针对该类型的模板。 ListBoxes 甚至可能有一个自定义模板系统,但使用 ListBoxes 可能不再是必需的 - 任何容器都可以公开一个 Collection。

如果你打算学习 MVVM,中长期你应该学习 MVVM。我写了一个 short intro a few years back,应该可以帮助你。对不遵循 MVVM 的人的帮助在论坛上解析。

一般来说,以这种方式构建 UI 是违反 WPF 的 MVVM 原则的。相反,考虑一种类似于 this question 的答案中提出的解决方案。他们很好地解释了要做什么,以及为什么我们这样做。