WPF : problème de binding dans un CompositeCollection
Bonsoir à tous !
Voilà je débute avec WPF, je voudrais à terme être capable d'afficher des objets de classes différentes (des points, des segments, des polygones) dans un même canvas...
Bref l'heure est à la découverte, et j'ai tenté d'utiliser un CompositeCollection contenant seulement une collection "Entities" dans une ListBox pour commencer... et ça ne fonctionne pas, le programme compile sans problème mais ma liste reste vide !
Mon binding me semble pourtant bon puisque la liste se remplie lorsque je l'utilise "classiquement" comme cela:
Code:
<ListBox.ItemsSource ItemsSource="{Binding Entities}">
Voici le code XAML:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
<Window x:Class="ComposantCarte.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ComposantCarte"
Title="Window1" Height="300" Width="300">
<WrapPanel Height="146" Margin="10,10,68,0" Name="wrapPanel1" VerticalAlignment="Top" Width="262">
<ListBox Height="126" Name="listBox1" Width="222" >
<!--<ListBox.ItemsSource ItemsSource="{Binding Entities}">--> <!-- ça fonctionne-->
<ListBox.ItemsSource>
<CompositeCollection>
<CollectionContainer Collection="{Binding Entities}"/><!--mais pas ça !-->
</CompositeCollection>
</ListBox.ItemsSource>
</ListBox>
</WrapPanel>
</Window> |
et voici le "code behind" C#
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace ComposantCarte
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
ObservableCollection<Entity> collEntities = new ObservableCollection<Entity>();
collEntities.Add(new Entity());
collEntities.Add(new EntPoint(){X=20,Y=40});
collEntities.Add(new EntPoint() { X = 20, Y = 60 });
collEntities.Add(new EntPoint() { X = 20, Y = 80 });
this.DataContext = new { Entities=collEntities };
}
}
} |
Une dernière chose, d'après ce lien le CollectionContainter comporte un bug, mais je ne pense pas que ce soit le cas ici ?? (je n'ai pas d'erreur comme reporté dans le bug)
http://social.msdn.microsoft.com/For...8-7ae9f7dca88a
Merci à vous de m'éclairer :ccool: