共享 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.Forms
或 Prism.Wpf
中任何类型的引用,您将无法在平台之间共享它。
共享库应仅引用 Prism.Core
。然后,您可以创建引用共享 Prism.Core
基础库的平台特定库,并分别为 Xamarin.Forms 和 WPF 添加平台特定功能。
有谁知道是否可以在 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.Forms
或 Prism.Wpf
中任何类型的引用,您将无法在平台之间共享它。
共享库应仅引用 Prism.Core
。然后,您可以创建引用共享 Prism.Core
基础库的平台特定库,并分别为 Xamarin.Forms 和 WPF 添加平台特定功能。