You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Avalonia框架中,能否在Views与ViewModels文件夹下新增子文件夹?

拆分MVVM文件结构的实用方案

当项目文件量增大后,仅靠Views和ViewModels两个根文件夹确实会导致文件查找、维护效率低下,这里分享几种落地性强的拆分方式:

按业务模块拆分

  • 以业务功能为单位创建子文件夹,每个模块下单独存放对应的View和ViewModel
    /Features
      /UserManagement
        - UserListView.xaml
        - UserListViewModel.cs
        - UserDetailView.xaml
        - UserDetailViewModel.cs
      /OrderProcessing
        - OrderListView.xaml
        - OrderListViewModel.cs
    
  • 优势:业务边界清晰,团队协作时不易冲突,新人能快速定位功能模块

按组件类型+业务混合拆分

  • 保留根目录的Views和ViewModels,但在其下按业务模块再细分
    /Views
      /UserManagement
        - UserListView.xaml
        - UserDetailView.xaml
      /OrderProcessing
        - OrderListView.xaml
    /ViewModels
      /UserManagement
        - UserListViewModel.cs
        - UserDetailViewModel.cs
      /OrderProcessing
        - OrderListViewModel.cs
    
  • 优势:既保留了MVVM的基础结构分类,又通过业务模块拆分缓解文件拥挤问题

按功能角色拆分(适合大型项目)

  • 对于超大型项目,可以进一步拆分出公共组件、页面、弹窗等子目录
    /Views
      /Pages
        /UserManagement
          - UserListView.xaml
      /Dialogs
        /UserManagement
          - UserEditDialog.xaml
      /Controls
        - CustomDataGrid.xaml
    /ViewModels
      /Pages
        /UserManagement
          - UserListViewModel.cs
      /Dialogs
        /UserManagement
          - UserEditDialogViewModel.cs
    
  • 优势:细化到组件级别,复杂项目的文件管理更有序

额外建议

  • 统一命名规范:比如所有ViewModel后缀为ViewModel,View后缀为View/Page/Dialog,方便快速识别
  • 利用IDE的分组功能:比如Visual Studio可以通过文件夹嵌套、筛选功能辅助管理,不用完全依赖物理文件夹结构

内容的提问来源于stack exchange,提问作者Ali-Muhammad Zakaryaev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 23:45:57