public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) { PNM pnm = values[0] as PNM; int? selection = values[1] as int?; Visibility?visibility = values[2] as Visibility?; if (pnm == null || selection == null || visibility != Visibility.Visible) { return(Binding.DoNothing); } double[] rawData; switch (selection) { case 0: rawData = pnm.GetHistogramLuminosity(); break; case 1: rawData = pnm.GetHistogramRed(); break; case 2: rawData = pnm.GetHistogramGreen(); break; case 3: rawData = pnm.GetHistogramBlue(); break; default: return(Binding.DoNothing); } return(BuildHistogramGeometry(rawData)); }