public void Remove(IMultiInstanceWidget widget)
        {
            if (widget == null)
            {
                return;
            }

            if (this.cachedWidgets.Remove(BuildMultiUseWidgetKey(widget)))
            {
                var handler = WidgetRemoved;
                if (handler != null)
                {
                    handler(this, new WidgetRepositoryChangedEventArgs((Widget)widget));
                }
            }
        }
 private static string BuildMultiUseWidgetKey(IMultiInstanceWidget widget)
 {
     var baseWidget = (Widget)widget;
     return baseWidget.Category + baseWidget.Name + widget.Id;
 }