private void Initialize(Window win) { if (win == null) { throw new ArgumentNullException(nameof(win)); } if (_initialized) { return; } foreach (var vm in _vms) { var template = Wpf.CreateDataTemplate(vm.GetType(), vm.ViewType); win.Resources.Add(template.DataTemplateKey, template); NavbarVm.Buttons.Add(new MenuAction(new CommandHandler(Navigate), vm.Icon, vm, vm.Name)); } Content = NavbarVm.Buttons.First().CommandParameter; _initialized = true; }