Я изучаю WPF с Caliburn Micro.Я прочитал документацию много раз, и я даже следую учебному пособию на YouTube от Timcorey.Где-то вдоль линии я, должно быть, не указал / инициализировал что-то правильно.
Обычно я бы указывал объект как X obj = new X ();но в этом случае Eventaggregator это не нравится.Мне удалось заставить код работать, изменив строку events.subscribe на:
if (_events != null) _events.Subscribe(this)
, но во время выполнения код никогда не достигает этой строки, даже когда установлена точка останова.После удаления всего кода Eventaggregator я могу запускать и запускать свои события.Я просто не могу опубликовать и подписаться на него.
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PropertyChanged;
using Caliburn.Micro;
using ERP101.EventModels;
using ERP101.ViewModels;
namespace ERP101.ViewModels
{
[AddINotifyPropertyChangedInterface]
public class ShellViewModel : Conductor<object>,IHandle<LoginEvent>
{
private IEventAggregator _events;
private StartPageViewModel _startPVM;
private SimpleContainer _container;
public ShellViewModel(IEventAggregator events,StartPageViewModel startPVM,SimpleContainer container)
{
_events = events;
_events.Subscribe(this); //null reference error here
_startPVM = startPVM;
_container = container;
ActivateItem(_container.GetInstance<LoginViewModel>());
}
public void Handle(LoginEvent message)
{
ActivateItem(_startPVM);
}
}
}```