我正在构建一个相当大的WP7应用程序,并从中获得了很多乐趣。它是基于Pivot的,并且有相当多的pivot页面。我根据用户选择的应用程序的“模式”来动态地添加和删除pivot页面,以保持应用程序的外观和感觉尽可能简单。到目前为止,一切都很顺利,我的应用程序响应速度很快,而不是占用内存或资源,并在需要时按需执行后台加载。
Model层包含我的所有业务逻辑,这些业务逻辑代表应用程序的全部内容。它是干净的,并且独立于视图模型和视图层。
View-Model层是模型的抽象,它需要与视图进行交互,并且通常还包含应用程序的会话和工作流方面。它包含以视图需要与之交互的方式表示模型的对象。视图模型将应用程序的状态持久化在独立存储中,并支持tomb-stoning。
视图层在xaml和相应的代码中都包含了大量的元素轴心、用户控件、样式、资源等。我确实喜欢visual Studio2010中的Blend和Xaml设计器,但是我发现自己仍然在代码后面编写/配置视图对象,因为它们彼此交互的性质。视图对象背后的代码变得非常大,但仍然只反映视图的状态,而不是应用程序的状态。我经常使用用户控件,因为这让我可以跨许多pivot页面构建可重用的组件,但是用户控件并不是混合友好的。我担心的是,我的视图可能会变得比需要的更复杂,并失去使用expression blend等工具协调用户界面设计的能力。
通过以这种方式定制视图并利用可重用控件,我大大减少了我的Xaml,并且不会受到其他开发人员提到的臃肿的Xaml文件的困扰,但失去了与Blend协调的能力。有没有快乐的媒介可以找到?我是否应该考虑设计自定义控件?
编辑
感谢您的回复。我认为这要么归结为大量使用Xaml的设计器,要么将其分解为具有更多代码的用户控件。自从我进入用户控制领域后,我的思维方式又回到了手工操作,而不是与设计者合作(你知道的,更好!)。我的想法是,我应该让我的用户控件变成可设置皮肤的自定义控件,还是继续我的方式,避免使用设计器。这有点像土豆泥,但我不想养成坏习惯。
发布于 2011-12-19 14:37:19
据我所知,自定义控件(或模板化控件)与您的问题没有直接关系。自定义控件只是将新的属性、事件和方法添加到现有控件中的控件,并且仍然能够由设计器“模板化”。
在代码中创建UI确实会使使用Blend (甚至VS设计器)设计应用程序变得更加困难,因为查看界面的唯一方法是运行应用程序。
创建UI的许多逻辑都可以通过使用Visual State Manager来替换。使用控件的状态为视图的特定模式设计它们。只有当你需要额外的/新的状态时,你才需要创建自定义控件。
由于您的问题有点宽泛,请随时添加评论或扩展您的问题,以便我可以添加更多细节或在此答案完全是无稽之谈时将其删除:)
https://stackoverflow.com/questions/8557538
复制相似问题