本项目基于
MvvmCross 9.0.9
MvvmCross.Platforms.Wpf 9.0.9
1.首先创建类库
2.安装NuGet包
3.创建Services目录
4.创建ViewModels目录
5.创建 App.cs,代码如下
using MvvmCross;
using MvvmCross.ViewModels;
using MyTool.Core.Services;
using MyTool.Core.ViewModels;
namespace MyTool.Core
{
public class App : MvxApplication
{
public override void Initialize()
{
Mvx.IoCProvider.RegisterType<ICalculationService, CalculationService>();
RegisterAppStart<TipViewModel>();
}
}
}
5.创建WPF项目
6. 新建Setup.cs 文件,这里的Core.App为刚刚创建的Core项目中的App文件,而不是WPF中的App文件
using Microsoft.Extensions.Logging;
using MvvmCross.Platforms.Wpf.Core;
using Serilog;
using Serilog.Extensions.Logging;
namespace MyTool
{
public class Setup : MvxWpfSetup<Core.App>
{
protected override ILoggerProvider CreateLogProvider()
{
return new SerilogLoggerProvider();
}
protected override ILoggerFactory CreateLogFactory()
{
// serilog configuration
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.Trace()
.CreateLogger();
return new SerilogLoggerFactory();
}
}
}
7.修改App文件
using MvvmCross.Core;
using MvvmCross.Platforms.Wpf.Views;
namespace MyTool
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : MvxApplication
{
protected override void RegisterSetup()
{
this.RegisterSetupType<Setup>();
}
}
}
8.修改App.xaml文件 修改app tag 为views:MvxApplication
<views:MvxApplication
xmlns:views="clr-namespace:MvvmCross.Platforms.Wpf.Views;assembly=MvvmCross.Platforms.Wpf"
x:Class="MyTool.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Windows/MainWindow.xaml">
</views:MvxApplication>
9.上述基础搭建完成
代码参考 github:GitHub - moxi255/MyToolBase at master