using Prism.Commands; using Prism.Mvvm; using Prism.Regions; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input; namespace StartServerWPF.Modules.Main.Models { public class MenuItemModel : BindableBase { public string MenuIcon { get; set; } public string MenuHeader { get; set; } public string TargetView { get; set; } private bool _isExpanded; public bool IsExpanded { get { return _isExpanded; } set { SetProperty(ref _isExpanded, value); } } private ObservableCollection _children; public ObservableCollection Children { get { return _children; } set { SetProperty(ref _children, value); } } private ICommand _openViewCommand; public ICommand OpenViewCommand { get { if (_openViewCommand == null) _openViewCommand = new DelegateCommand((model) => { var para= new NavigationParameters(); para.Add("model", model.MenuHeader); if ((model.Children == null || model.Children.Count == 0) && !string.IsNullOrEmpty(model.TargetView)) _regionManager.RequestNavigate("MainContentRegion", model.TargetView, para); else IsExpanded = !IsExpanded; }); return _openViewCommand; } } IRegionManager _regionManager = null; public MenuItemModel(IRegionManager regionManager) { _regionManager = regionManager; } private bool _isSelected; public bool IsSelected { get => _isSelected; set { SetProperty(ref _isSelected, value); } } } }