/// <summary> /// Constructs a new instance of the view model for the /// component catalog, which will be assigned to an instance /// of the plug-in catalog user control. /// </summary> /// <param name="catalog"></param> public AfxComponentCatalogViewModel(IAfxComponentCatalog catalog) { foreach (var package in catalog) { var packageModel = new ComponentPackage() { Title = package.Title, Items = new ObservableCollection<ComponentTemplate>() }; foreach (var template in package) { var templateModel = new ComponentTemplate() { Id = template.Id, Name = template.Name, Image = GetComponentBitmap(template, catalog) }; packageModel.Items.Add(templateModel); } this._items.Add(packageModel); } }
private BitmapImage GetComponentBitmap(AfxComponentTemplate template, IAfxComponentCatalog catalog) { var resolver = catalog.GetComponentResolver(template.Resolver); if (resolver != null) { return resolver.GetProperty(template.Id, "Component.Bitmap") as BitmapImage; } return null; }