public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
			if (value is ObservableCollection<WatermarkBase>) {
				if (value != null) {
					List<WatermarkSelection> watermarks = new List<WatermarkSelection>();
					for (int i = 0; i < ((ObservableCollection<WatermarkBase>)value).Count; i++) {
						WatermarkBase watermark = ((ObservableCollection<WatermarkBase>)value)[i];
						WatermarkSelection ws = new WatermarkSelection {
							Index = i
						};

						if (watermark is WatermarkImage) {
							ws.WatermarkTypeDisplayText = Resources.LanguageContent.Label_Image;
							ws.WatermarkType = "Image";
						} else if (watermark is WatermarkText) {
							ws.WatermarkTypeDisplayText = Resources.LanguageContent.Label_Text;
							ws.WatermarkType = "Text";
						}

						watermarks.Add(ws);
					}

					return watermarks;
				} else {
					return null;
				}
			} else {
				return null;
			}
		}
        private void lbWatermarkCollection_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (e.AddedItems.Count > 0)
            {
#if DEBUG
                System.Diagnostics.Debug.WriteLine("watermark selection changed " + e.AddedItems[0].ToString() + " at " + DateTime.Now);
#endif
                WatermarkSelection selectedItem = e.AddedItems[0] as WatermarkSelection;

                switch (selectedItem.WatermarkType)
                {
                case "Image":
                    presenter.CreateWatermarkImageContent(selectedItem.Index);
                    break;

                case "Text":
                    presenter.CreateWatermarkTextContent(selectedItem.Index);
                    break;
                }
            }
        }