【发布时间】:2023-03-11 21:24:02
【问题描述】:
我正在尝试在 MVVM 中制作一个程序,该程序可以读取 Excel 文件并将内容生成到 Word 文件中。现在,每次有人选择在复选框上创建 Word 文件时,我都坚持在 UserControl 上创建新的 Tabs:
它应该在我的第二个UserControl 上生成一个新选项卡,我正在尝试从名为HauptfensterViewModel 的 ViewModel 生成它。
视图模型中的代码如下所示:
protected void OnWeiterExecute(object obj)
{
OnDokumentChanged();
new VorschauViewModel(view);
if (Dokumenttyp[0] == true)
{
//TabItem auf VorschauWindow erstellen, mit jeweiligem Dokumentennamen(Angebotsvorlage)
}
if (Dokumenttyp[1] == true)
{
//TabItem auf VorschauWindow erstellen mit jeweiligem Dokumentennamen(Auditplan)
}
if (Dokumenttyp[2] == true)
{
//TabItem auf VorschauWindow erstellen mit jeweiligem Dokumentennamen(Checkliste)
}
if (Dokumenttyp[3] == true)
{
//TabItem auf VorschauWindow erstellen mit jeweiligem Dokumentennamen(Dokumentationsvorlage)
}
}
感谢您的帮助,如果有不明白的地方,我会尽力回答所有问题。
【问题讨论】:
-
因为
CheckBoxes有四个,所以最多加四个TabItems? -
这两个
USerControls是否在同一个Window中? -
实际上,您完全错过了 MVVM 概念。视图模型不应创建任何
TabItems(因为它们是视图元素,视图模型不应打扰任何视图)。这一行再次证实了这一事实:new VorschauViewModel(view);- 您正在将视图传递给视图模型,这(通常)不是 MVVM-ish。 -
@Iron 是的,它应该只生成 4 个 TabItems
-
@dymanoid 好吧,我不知道,谢谢。那么我应该在我的 UserControl.cs 上生成它们吗?
标签: c# wpf mvvm tabcontrol