Mam właściwość do której binduję:

[Category("Toners")]
        public TonerData[] TonerData
        {
            get { return (GSPrinters.Intefaces.TonerData[])GetValue(TonerDataProperty); }
            set { SetValue(TonerDataProperty, value); }
        }

Teraz potrzebuję na podstawie indexu określić jaki typ status odczytu toneru TonerData.eTonerStatus zawiera klasa **TonerData **o konkretnym indexie, a następnie wyświetlić lub ukryć konkretne kolumny w widoku.

Mam stworzone dwa konwertery

  1. Z indexu TonerData[] na typ TonerData.eTonerStatus
internal class IndexToTypeConverter : IValueConverter
    {
        private int tonerIndex = 0;
        public int TonerIndex
        {
            get { return tonerIndex; }
            set { tonerIndex = value; }
        }

        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            TonerData[] td = value as TonerData[];
            if (td == null)
                return TonerData.eTonerStatus.Error;
            if (td.Count() <= TonerIndex)
                return TonerData.eTonerStatus.Unavailable;
            return td[tonerIndex].Status;
        }
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
  1. Z TonerData.eTonerStatus na Visibility
internal class TypeToVisibilityConverter : IValueConverter
    {
        private TonerData.eTonerStatus status;
        public TonerData.eTonerStatus Status
        {
            get { return status; }
            set { status = value; }
        }

        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            TonerData.eTonerStatus v = (TonerData.eTonerStatus)value;
            return (v == status) ? Visibility.Visible : Visibility.Collapsed;
        }
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

Potrzebuję teraz określając index TonerData[] ukryć kontrolkę której konwerter TypeToVisibilityConverter w bindingu wskazał wartość TonerData.eTonerStatus inną niż określoną w konwerterze. Oczywiście wcześniej musze użyć konwertera **IndexToTypeConverter **. Czy można użyć dwóch konwerterów w jednym bindingu czy muszę pisac osobny konwerter?
Coś na ten wzór

<Grid>
            <Grid.Visibility>
                <Binding ElementName="hWindow" Path="TonerData">
                    <Binding.Converter>
                        <local:IndexToTypeConverter TonerIndex="0">
                            <local:TypeToVisibilityConverter Status="Unavailable"/>
                        </local:IndexToTypeConverter>
                    </Binding.Converter>
                </Binding>
            </Grid.Visibility>
        </Grid>