Я использую wpf + mvvm и пытаюсь реализовать условный преобразователь. Вот что я делаю в xaml:
<CheckBox.IsChecked>
<MultiBinding Converter="{StaticResource pageSourceConverter}">
<Binding Path="CurrentPage.Source"/>
<Binding Path="Project.Type1.MachineTypes.Rotating"/>
<Binding Path="Project.Type2.MachineTypes.Rotating" />
<Binding Path="Project.Type3.MachineTypes.Rotating" />
<Binding Path="Project.Type4.MachineTypes.Rotating" />
</MultiBinding>
</CheckBox.IsChecked>
и мультиконвертер:
public class PageSourceConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
String pageSource = values[0] as String;
if (pageSource == "Type1")
return values[1];
else if (pageSource == "Type2")
return values[2];
else if (pageSource == "Type3")
return values[3];
else if (pageSource == "Type4")
return values[4];
else
return null;
}
public object[] ConvertBack(object value, Type[] targetType, object parameter, CultureInfo culture)
{
return null;
}
}
Итак, я хочу условно привязать элемент на странице к разным моделям, которые есть в viewController, в зависимости от типа страницы, на которой находится пользователь.
Что мне нужно сделать для конвертации? Я не знаю, как определить, к какому элементу в возвращаемом массиве принадлежит значение. Есть идеи?