[英]UWP app architecture dilemma
我是UWP開發(針對手機的設計)的新手,現在我正在使用它開發一個應用程序(具有Android開發經驗)。 該應用程序被設計為單頁應用程序,具有地圖以及大量其他菜單,按鈕和字段:它們根據某種邏輯出現和消失。 其中許多控件用於渲染或填充運行時(如果可能的話,不使用xaml,僅在c#中使用xaml,如果可能的話,使用viewmodel),因為它是從API加載的。 難題是頁面類(也就是xaml類)會越來越大,我不確定如何正確地將其分開(我不是指部分類),因為並不是所有這些控件都在應用程序啟動時加載(現在它們是,我崩潰/可見需要)。 例如,在Android術語中,有片段可以用動畫等替換/疊加。現在,我有一個擴展類,可以與API交互,僅向頁面類發送回調,但這還不夠=)
降低頁面復雜度的一種方法是將其分為單獨的UserControls 。 將其與MVVM模式相結合,還可以在多個視圖模型類中分離視圖邏輯。
舉例來說,假設您的頁面中有一個主要的細節布局,假設此視圖顯示了用戶信息。 您將擁有三個單獨的視圖:
以及三個單獨的視圖模型。 這種模式存在一些挑戰:
通訊
您的視圖需要相互交流。 例如,當您在UserListView中選擇一個用戶時,UserDetailsView需要更新並顯示所選用戶的詳細信息。
這些視圖之間至少存在三種通信方式:
我通常選擇第一種和第二種方法,而不是第三種。
共享的UI資源
頁面中的視圖可能要使用頁面中的共享資源,例如命令欄。 例如,UserListView可能需要在命令欄上有一個Add(+)按鈕,UserDetailsView也可能需要一些按鈕。 這將是您應對這種情況的挑戰。
您可以使用MVVM模式分離邏輯。
https://blogs.msdn.microsoft.com/johnshews_blog/2015/09/09/a-minimal-mvvm-uwp-app/
您可以使用Binding或x:Bind使用XAML的功能根據業務規則隱藏或顯示控件。
使用MVVM模式是創建基於XAML的應用程序(如UWP,WPF)的最佳實踐。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.