Looking for a WPF MVVM Mentor

They are public. Here there are. Project, Command, and Message view model will look exactly like the QueueViewModel.

public class QueueViewModel : ViewModelBase { private Queue _queue; public QueueViewModel(Queue queueObject) { Queue = queueObject; }

    public Queue Queue
    {
        get { return _queue; }
        set
        {
            SetProperty(ref _queue, value);
            OnPropertyChanged();
        }
    }
}

public class MessageQueueViewModel : ViewModelBase { public static MessageQueueViewModel MessageQueue = new MessageQueueViewModel();

    public MessageQueueViewModel()
    {
        var helpMenu = LoadHelpMenu();
        Queues = new ObservableCollection<QueueViewModel>();
        Projects = new ObservableCollection<ProjectViewModel>();
        Commands = new ObservableCollection<CommandViewModel>();
        Messages = new ObservableCollection<MessageViewModel>();

        var queues = helpMenu.Queues.Select(queue => new QueueViewModel(queue));
        foreach (var queue in queues)
            Queues.Add(queue);

        var projects = helpMenu.Projects.Select(project => new ProjectViewModel(project));
        foreach (var project in projects)
            Projects.Add(project);
    }

    public ObservableCollection<QueueViewModel> Queues { get; set; }
    public ObservableCollection<ProjectViewModel> Projects { get; set; }
    public ObservableCollection<CommandViewModel> Commands { get; set; }
    public ObservableCollection<MessageViewModel> Messages { get; set; }


    private HelpMenu LoadHelpMenu()
    {
        HelpMenu returningObject;
        var deserializer = new XmlSerializer(typeof(HelpMenu));
        using (var reader = new StreamReader(ConfigurationManager.AppSettings["XMLLocation"]))
        {
            object tempObject = deserializer.Deserialize(reader);
            returningObject = tempObject as HelpMenu;
        }
        return returningObject;
    }
}
/r/ProgrammingBuddies Thread