У меня здесь простое приложение, но я не уверен, как создается моя ViewModel. Я предполагаю, что это из контейнера единства, но я не уверен и любопытна. Модуль инициализирует и регистрирует представление с областью. В коде представления есть ViewModel, инициализированный в его конструкторе, и ViewModel вызывает некоторые службы, которые ранее были зарегистрированы.Как создается этот viewModel?
Мой вопрос: как выглядит ViewModel в коде View, когда я никогда не регистрировал тип ViewModel с контейнером единства? Есть ли какая-то магия в методе RegisterViewWithRegion?
AlarmsModule.cs: Это просто регистрирует вид с областью
[Module(ModuleName = "AlarmsModule")]
public class AlarmsModule : IModule
{
[Dependency]
public IRegionManager regionManager { get; set; }
public void Initialize()
{
regionManager.RegisterViewWithRegion("AlarmsRegion", typeof(AlarmPanel.View));
}
}
View.xaml.cs:
public partial class View : UserControl
{
public View(ViewModel vm)
{
InitializeComponent();
DataContext = vm;
}
}
ViewModel.cs
public class ViewModel: DependencyObject
{
IEventAggregator _eventAggregator;
public ObservableCollection<IAlarmContainer> AlarmList { get; set; }
IAlarmService _alarmService;
public ViewModel(IAlarmService alarmService)
{
//Adding an alarm from the alarm service, which is injected into this viewModel
AlarmList = alarmService.AlarmList;
}
}
Awesome, спасибо! –