Связывать View c ViewModel

WPF
  1. 9 месяцев(а)

    Здравствуйте. Я хотел спросить о MVVM. я создал Виев, модель и виев-модель, теперь не знаю как их назначить на нужное место, то есть как связывать Виев с Виев-моделью. Буду очень благодарен.

  2. 7 месяцев(а)

    Добрый день.
    Связать Model с ViewModel можно через Context в App.xaml.cs
    Вот так должен выглядеть App.xaml:

    <Application x:Class="Accounts_Joiner.App"
    	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    	<Application.Resources>
    		 
    	</Application.Resources>
    </Application>

    Через менеджер пакетов, в проект нужно подключить Autofac.

    using Autofac;
    using WPFControls.ViewModels;
    using WPFControls.Views;
    
    namespace WPFControls
    {
    	/// <summary>
    	/// Interaction logic for App.xaml
    	/// </summary>
    	public partial class App : Application
    	{
            private IContainer container;
            
    		protected override void OnStartup(StartupEventArgs e)
    		{
                		base.OnStartup(e);
    
                		container = CreateContainer();
                
                		var window = container.Resolve<MainView>();
                		var viewModel = container.Resolve<MainViewModel>();
    
                		window.DataContext = viewModel;
                		window.Show();
    		}
    
            	protected override void OnExit(ExitEventArgs e)
            	{
                		base.OnExit(e);
    
                		container.Dispose();
            	}
    
            	private static IContainer CreateContainer()
            	{
                		var builder = new ContainerBuilder();
    
                		builder
                    		.RegisterAssemblyTypes(Assembly.GetExecutingAssembly())
                    		.AsSelf();
    
                		builder
                    		.RegisterAssemblyTypes(Assembly.GetExecutingAssembly())
                    		.AssignableTo<MainViewModel>()
                    		.As<MainViewModel>();
                
                		return builder.Build();
            	}
    	}
    }

    Вроде бы всё. Теперь MainViewModel.cs и ViewModel.xaml связаны и можно работать дальше.

или зарегистрируйтесь чтобы ответить