Mon XAML ...silverlight 4 {} liant le dictionnaire générique listbox (articles ne sont pas affichés)
<ListBox Margin="6,35,6,6" Name="lbLayers" SelectionMode="Extended" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Key,Mode=TwoWay}" />
<TextBlock Text="{Binding Value.Visible,Mode=TwoWay,StringFormat='Visible: {0}'}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
.. et mon code est ...
void GameEvents_MapCreated(object sender, Zider.EventArgs.MapEventArgs e)
{
HookMapLayerEvents(false);
this.map = e.Map;
HookMapLayerEvents(true);
this.lbLayers.ItemsSource = this.map.Layers;
}
this.map. layers est un dictionnaire générique de type (chaîne, MapLayer (Tile))
Lorsque je définis ItemSource sur la liste, il n'y a pas d'éléments dans le dictionnaire pour commencer. Lorsque je clique sur un bouton qui est quand j'ajoute une couche de carte à
this.map.Layers.Add("key", new MapLayer<Tile>());
également MapLayer implémente INotifyPropertyChanged pour ses propriétés.
Pour la vie de moi, je n'arrive pas à obtenir les éléments à afficher dans la liste.
Après un peu plus de recherche autour de je suis tombé sur cet article http://blogs.microsoft.co.il/blogs/shimmy/archive/2010/12/26/observabledictionary-lt-tkey-tvalue-gt-c.aspx Je définissais ItemSource à une collection qui n'a pas implémenté une interface INotifyCollectionChanged. –