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