WPF UnityContainer traditional using Microsoft.Practices.Unity;
1.Install-Package Unity -Version 4.0.1
2.
using Microsoft.Practices.Unity; using WpfApp9.IModels; using WpfApp9.Models; using WpfApp9.ViewModel; namespace WpfApp9 { /// <summary> /// Interaction logic for App.xaml /// </summary> public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); IUnityContainer unityContainer = new UnityContainer(); unityContainer.RegisterType<IDateModel, DateModel>(); var mainVM = unityContainer.Resolve<MainVM>(); var window = new MainWindow { DataContext = mainVM }; window.Show(); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WpfApp9.IModels { interface IDateModel { string GetDateTime(); } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WpfApp9.IModels; namespace WpfApp9.Models { public class DateModel : IDateModel { public string DateTimeNow { get; set; } public DateModel() { DateTimeNow = GetDateTime(); } public string GetDateTime() { return DateTime.Now.ToString("yyyyMMddHHmmssffff"); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WpfApp9.Models; namespace WpfApp9.ViewModel { public class MainVM { private DateModel dateModel; public MainVM() { } public MainVM(DateModel dateHelper) { dateModel = dateHelper; } } }