我是UWP开发的新手(设计目标手机),现在我正在使用它开发一个应用程序(具有Android开发经验)。应用程序被设计为单页应用程序,它有一个地图和大量的其他菜单,按钮和字段:它们基于某些逻辑出现和消失。其中许多控制着渲染或填充运行时(没有/部分使用xaml,只是在c#中,如果可能的话,使用了viewmodel),因为它是从API加载的。困境是页面类(也作为xaml one)将变得越来越大,我不确定如何正确地分离这个(我不是意味着部分类),因为并非所有这些控件都在应用程序启动时加载(现在它们是,我崩溃/可见需要)。例如,在Android术语中,片段可以用动画等替换/叠加彼此。现在我有一个扩展类,我与API交互,只发送回调到页面类,但这还不够=)
答案 0 :(得分:2)
降低页面复杂性的一种方法是将其分解为单独的UserControls。将其与MVVM pattern相结合,您还可以在多个视图模型类中分离视图逻辑。
例如,假设您的页面中有一个主要的详细信息布局,请假设此视图显示用户信息。您将有三个单独的视图:
以及三个独立的视图模型。这种模式存在一些挑战:
<强>通信强>
您的观点需要相互沟通。例如,当您在UserListView中选择用户时,UserDetailsView需要更新并显示所选用户的详细信息。
这些观点之间至少有三种沟通方式:
我通常选择第一种和第二种方法而不是第三种方法。
共享用户界面资源
页面中的视图可能希望使用页面中的共享资源,例如命令栏。例如,UserListView可能需要在命令栏上有一个Add(+)按钮,UserDetailsView也可能需要几个按钮。对你来说,处理这种情况将是一个挑战。
答案 1 :(得分:0)
您可以使用MVVM Pattern分离逻辑。
https://blogs.msdn.microsoft.com/johnshews_blog/2015/09/09/a-minimal-mvvm-uwp-app/
您可以使用XAML的强大功能根据业务规则隐藏或显示您的控件,使用Binding或x:Bind
使用MVVM Pattern是创建基于XAML的应用程序(如UWP,WPF)的最佳实践。