【发布时间】:2011-03-10 19:56:48
【问题描述】:
我正在使用 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>
还有 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 中拥有的不同模型。
我需要为转换返回做什么?我不知道如何判断该值属于返回数组中的哪个元素。有什么想法吗?
【问题讨论】:
标签: wpf xaml conditional multibinding imultivalueconverter