C# XAML(Silverlight&;WPF)与MVVM组合的复杂UI
我开始重新设计(软件设计)基于XAML的应用程序,我在两个月前写道。我认为我在开发过程中犯了很多架构错误,导致应用程序的UI部分很难扩展、维护,代码也很难理解。我的应用程序是用MVVM风格的PRISM 4编写的,但尽管PRISM是为模块化设计而发明的,我的应用程序却非常单一。我将继续在新设计中使用PRISM 4,但这次我想将应用程序的UI部分分解为更小、可重用、可扩展的构建块 假设我们正在设计数据输入表单,顶部的容器包含Save、Cancel按钮和TabControl,其中包含2-3个包含大量分组输入控件的选项卡 我可以看到两种完全不同的UI设计方法:静态(编译时)和动态(运行时)。静态是指在编译之前预定义UI,即使用XAML中定义的列的DataGrid。动态是指在运行时编写UI,即在XAML中定义DataGrid,但在运行时根据用户属性添加列 当您决定使用哪种方法时,您使用什么规则,静态还是动态?在这个例子中,你会选择什么 下一个大问题是如何将UI分解成碎片 定义UserControls时使用什么规则,如何定义此示例表单的UserControls?现在关于ViewModels,您是为这个示例表单创建单个VM还是创建多个VM(解释)?当ViewModel包含其他ViewModel(不是简单的模型包装器,而是包含逻辑的真实VM)时,您会怎么想 现在最难的问题至少对我来说是这样。扩展UI构建块(用户控件和视图模型) 当您需要创建某个表单的副本,但界面和|或逻辑稍有不同时,这种情况非常常见,尤其是当您需要在UI中集成授权(权限)时。假设我们需要支持略有不同的out示例表单版本(不管到底有多少版本,假设2-6) 我可以想出以下方法来解决这个问题:C# XAML(Silverlight&;WPF)与MVVM组合的复杂UI,c#,wpf,silverlight,architecture,C#,Wpf,Silverlight,Architecture,我开始重新设计(软件设计)基于XAML的应用程序,我在两个月前写道。我认为我在开发过程中犯了很多架构错误,导致应用程序的UI部分很难扩展、维护,代码也很难理解。我的应用程序是用MVVM风格的PRISM 4编写的,但尽管PRISM是为模块化设计而发明的,我的应用程序却非常单一。我将继续在新设计中使用PRISM 4,但这次我想将应用程序的UI部分分解为更小、可重用、可扩展的构建块 假设我们正在设计数据输入表单,顶部的容器包含Save、Cancel按钮和TabControl,其中包含2-3个包含大量分
n。其他我想不起的方法。根据我的经验,开发路径往往是这样的:
不过,我可以告诉你:制作一个XAML对象的副本并对其进行编辑会让klaxons在我的脑海中发出声音。可以想象在什么情况下这样做是可以的,但这不是打赌的方式。谢谢你分享你的经验,我第一次尝试设计我正在进行的项目在第3步失败了。