Я использую wpf + mvvm и пытаюсь реализовать условный конвертер. Вот то, что я делаю в XAML:IMultiValueConverter ConvertBack problem
<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>
И в MultiConverter:
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 на основе типа страницы, на которой пользователь включен.
Что мне нужно сделать для конвертации? Я не знаю, как определить, к какому элементу в возвращаемом массиве принадлежит значение. Есть идеи?
Спасибо за ваш ответ. Это, безусловно, злоупотребление, я понял способ решить мою проблему, которая не использует ValueConverters. У меня был серьезный мозговой пердит! – jeremywho
@jeremywho -1 за то, что вы не делитесь своим решением. – xr280xr