public MenuItemViewModel(IMenuItem item) { Menus = new ObservableCollection <MenuItemViewModel>(); Name = item.Name; if (item is IMenuContainer) { new ObservableCollectionSynchronizer <IMenuItem, MenuItemViewModel>(item.As <IMenuContainer>(), Menus, (x) => new MenuItemViewModel(x)); } if (item is IMenuAction) { ActionCommand = item.As <IMenuAction>().Command; } }