using System; using System.Collections.ObjectModel; using System.ComponentModel; namespace DTS.Common.RibbonControl { public class GalleryData : ControlData { [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public ObservableCollection CategoryDataCollection { get { if (_controlDataCollection != null) return _controlDataCollection; _controlDataCollection = new ObservableCollection(); var smallImage = new Uri("/Common;component/RibbonControl/Images/Paste_16x16.png", UriKind.Relative); var largeImage = new Uri("/Common;component/RibbonControl/Images/Paste_32x32.png", UriKind.Relative); for (var i = 0; i < ViewModelData.GalleryCategoryCount; i++) { _controlDataCollection.Add(new GalleryCategoryData() { Label = "GalleryCategory " + i, SmallImage = smallImage, LargeImage = largeImage, ToolTipTitle = "ToolTip Title", ToolTipDescription = "ToolTip Description", ToolTipImage = smallImage, Command = ViewModelData.DefaultCommand }); } return _controlDataCollection; } } private ObservableCollection _controlDataCollection; public GalleryItemData SelectedItem { get => _selectedItem; set { if (_selectedItem != value) { _selectedItem = value; OnPropertyChanged(new PropertyChangedEventArgs("SelectedItem")); } } } GalleryItemData _selectedItem; public bool CanUserFilter { get => _canUserFilter; set { if (_canUserFilter == value) return; _canUserFilter = value; OnPropertyChanged(new PropertyChangedEventArgs("CanUserFilter")); } } private bool _canUserFilter; } public class GalleryData : ControlData { [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public ObservableCollection> CategoryDataCollection => _controlDataCollection ?? (_controlDataCollection = new ObservableCollection>()); private ObservableCollection> _controlDataCollection; public T SelectedItem { get => _selectedItem; set { if (Equals(value, _selectedItem)) return; _selectedItem = value; OnPropertyChanged(new PropertyChangedEventArgs("SelectedItem")); } } T _selectedItem; public bool CanUserFilter { get => _canUserFilter; set { if (_canUserFilter == value) return; _canUserFilter = value; OnPropertyChanged(new PropertyChangedEventArgs("CanUserFilter")); } } private bool _canUserFilter; } }