Комментарий
Meleak верен, вы должны как-то преобразовать одну коллекцию в другую и синхронизировать их. Вот как я это делал в прошлый раз:
Вид (я назвал его MyControl
ниже) имеет свойство Items
типа IEnumerable<Target>
DataContext имеет свойство Items
типа IEnumerable<Source>
class CollectionsConverter : IValueConverter
{
public object Convert(object value, ...)
{
var source = (ObservableCollection<Source>)value;
var target = new ObservableCollection<Target>(source.Select(/* Convert items somehow /);
// subscribe to both target's and source's 'CollectionChanged' events
// and propagate them back and forth to another collection.
// Propagated events should have converted items of course
return target;
}
...
}
Тогда в XAML:
<MyControl Items="{Binding Items, Converter=CollectionsConverter}" />
Что касается преобразования каждого элемента - это может быть либо общий код, который будет динамически определять способ преобразования Source
в Target
и наоборот, либо это должен быть код, который будет знать, какие именно типы он будет преобразовывать и как преобразовывать их.