public NewItemDialogViewModel(IProjectFolder folder) : base("New Item") { var shell = IoC.Get <IShell>(); templates = new ObservableCollection <ICodeTemplate>(); var compatibleTemplates = shell.CodeTemplates.Where(t => t.IsCompatible(folder.Project)); foreach (var template in compatibleTemplates) { templates.Add(template); } SelectedTemplate = templates.FirstOrDefault(); this.folder = folder; OKCommand = ReactiveCommand.Create(); OKCommand.Subscribe(_ => { SelectedTemplate?.Generate(folder); Close(); }); }