我有一個具有兩個ObservableCollections的多重綁定的DataBinding,並且我想在使用MultiConverter的條件之間切換它們。 所以轉換器給出了正確的集合,但綁定似乎沒有更新。使用多重綁定切換綁定源
任何想法?
映入眼簾,
于爾根
我有一個具有兩個ObservableCollections的多重綁定的DataBinding,並且我想在使用MultiConverter的條件之間切換它們。 所以轉換器給出了正確的集合,但綁定似乎沒有更新。使用多重綁定切換綁定源
任何想法?
映入眼簾,
于爾根
這是你需要轉換器:
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>
,你有一個FirstCollection,一個SecondCollection和IsFirst屬性中的DataContext
的假設下,你需要更新源列表視圖?
如果是這樣,你的結合應該是雙向模式:
<TextBox Text="{Binding Source, Mode="TwoWay"}" />
那是我有什麼,它似乎是工作,不過我的看法似乎並沒有被更新,如果原來的結合是其替換另一個來自MultiBinding。我總是有樹中顯示的舊數據... – opiswahn 2011-04-04 08:51:13
您是否在所有三個屬性上實現了INotifyPropertyChanged? (是的,在這裏ObservableCollections不會幫助) – 2011-04-04 08:54:26
我認爲這與它無關。可以說原始綁定在FirstCollection上,並且將改變爲SecondCollection,所以Binging會改變,而不是集合本身......或者我在這裏錯了嗎? – opiswahn 2011-04-04 10:59:50