private ObservableCollection<ScreenCategoryButton> CreateCategoryButtons(ScreenMenu screenMenu) { if (screenMenu != null) { if (MenuItems != null) MenuItems.Clear(); _currentScreenMenu = screenMenu; var result = new ObservableCollection<ScreenCategoryButton>(); foreach (var category in screenMenu.Categories.OrderBy(x => x.Order).Where(x => !x.MostUsedItemsCategory)) { var sButton = new ScreenCategoryButton(category, CategoryCommand); result.Add(sButton); } if (result.Count > 0) { var c = result.First(); if (_selectedCategory != null) c = result.SingleOrDefault(x => x.Category.Name.ToLower() == _selectedCategory.Name.ToLower()); if (c == null && result.Count > 0) c = result.ElementAt(0); if (c != null) OnCategoryCommandExecute(c.Category); } return result; } if (MenuItems != null) MenuItems.Clear(); if (Categories != null) Categories.Clear(); _currentScreenMenu = null; return Categories; }