IValueConverter并绑定DependencyObject

问题描述 投票:0回答:1

我有一个ComboBox,我需要在SelectedItem上做一个转换器。问题是IValueConverter需要绑定值,但也需要Collection。配置了DependencyObject,但它给我的错误消息是>>

无法将类型'System.Windows.Data.Binding'的对象转换为类型'System.Collections.ObjectModel.ObservableCollection`1 [MyClass]'。

这里是我的IValueConverter

public static readonly DependencyProperty FoldersProperty = 
    DependencyProperty.Register(nameof(MyCollection), typeof(ObservableCollection<MyClass>), typeof(MyClassModelToMyClassID), new FrameworkPropertyMetadata(new ObservableCollection<MyClass>()));
 public ObservableCollection<MyClass> MyCollection
 {
     get { return GetValue(FoldersProperty) as ObservableCollection<MyClass>; }
     set { SetValue(FoldersProperty, value); }
 }

这是我的称呼:

<Page.Resources>
    <converter:MyConverter x:Key="Converter" MyCollection="{Binding DataCollection}" />
</Page.Resources>
....
<ComboBox 
    ItemsSource="{Binding DataCollection}"
    SelectedItem="{Binding Path=MyValue, Converter={StaticResource TaxCodeConverter}}" />

我有一个ComboBox,需要对SelectedItem进行转换。问题是IValueConverter需要绑定值,但也需要Collection。配置了一个DependencyObject,但是它给了我...

wpf data-binding ivalueconverter
1个回答
0
投票

它必须是可冻结的。另外,请勿将新的可观察的集合传递给您的元数据。这是一个引用类型,因此将使用相同的实际集合实例来初始化此转换器的所有实例。

© www.soinside.com 2019 - 2024. All rights reserved.