共享 Prism Viewmodels WPF 和 Xamarin Forms

Sharing Prism Viewmodels WPF and Xamarin Forms

有谁知道是否可以在 WPF 和 Xamarin Forms 应用程序之间共享视图模型?下面是 Xamarin Forms 视图模型的片段。有一些界面是 Forms 应用程序所独有的,例如 IPageDialogService 以及处理导航的方式,因此我们似乎无法做到这一点,但想检查一下。

         using System;
         using System.Threading.Tasks;
         using Prism.Commands;
         using Prism.Mvvm;
         using Prism.Navigation;
         using Prism.Services;

         namespace PrismSample.ViewModels
         {
               public class MainPageViewModel : BindableBase, IInitialize, IConfirmNavigation, 
                        INavigationAware
               {
                 private INavigationService _navigationService { get; }
                 private IPageDialogService _dialogs { get; }

                 public MainPageViewModel(INavigationService navigationService, IPageDialogService 
                           dialogs)
                 {
                      _navigationService = navigationService;
                      _dialogs = dialogs;

                       NavigateCommand = new DelegateCommand<string>(OnNavigateCommandExecuted);
                  }
         }

如果您的代码包含对 Prism.FormsPrism.Wpf 中任何类型的引用,您将无法在平台之间共享它。

共享库应仅引用 Prism.Core。然后,您可以创建引用共享 Prism.Core 基础库的平台特定库,并分别为 Xamarin.Forms 和 WPF 添加平台特定功能。