我有一个带有两个ObservableCollections的MultiBinding的DataBinding,我想在具有MultiConverter的条件下切换它们。 所以转换器提供了正确的集合,但绑定似乎没有更新。
任何想法?
迎接,
尔根
答案 0 :(得分:5)
这是您需要的转换器:
public class SwitchCollectionsConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
bool b = (bool)values[2];
if (b)
return values[0];
else
return values[1];
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
注册转换器:
<local:SwitchCollectionsConverter x:Key="TheConverter" />
绑定的用法:
<ItemsControl>
<ItemsControl.ItemsSource>
<MultiBinding Converter="{StaticResource TheConverter}">
<Binding Path="FirstCollection" />
<Binding Path="SecondCollection" />
<Binding Path="IsFirst" />
</MultiBinding>
</ItemsControl.ItemsSource>
</ItemsControl>
假设您在DataContext中有FirstCollection,SecondCollection和IsFirst属性
答案 1 :(得分:0)
您是否需要视图来更新源列表?
如果是这样,您的绑定应该是TwoWay模式:
<TextBox Text="{Binding Source, Mode="TwoWay"}" />