Нужно отобразить несколько коллекций на одном Canvas'е. Сейчас сделано так - объединил ObservableCollection's в CompositeCollection и в xaml:
<ItemsControl ItemsSource="{Binding LiftLobbies}" ...>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="{x:Type ContentPresenter}">
<Setter Property="Canvas.Left" Value="{Binging X}" />
<Setter Property="Canvas.Top" Value="{Binging Y}" />
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type local:Lift}">
<Rectangle Width="{Binding Width}" Height="{Binding Height}" Stroke="Black" Fill="{Binding Doors}" />
</DataTemplate>
...
<ItemsControl.Resources>
</ItemsControl>
Так вот дело в том, что если добавить в CompositeCollection несколько ObservableCollection с одним и тем же типом, то я не могу задать для них разное отображение. Т.е. можно ли как-то задать для коллекций с одинаковым типом разное отображение?
P.S. Объединение в CompositeCollection не принципиально. Главное сделать для каждой коллекции отдельное отображение на одном Canvas'е.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей