2009-11-26 9 views
1

Tous,ListBox Reliure à la liste dans Silverilght ne fonctionne pas

J'ai ce que je pense est l'exemple le plus simple possible de liaison de données dans silverlight ... mais bien même cela est trop compliqué pour moi :)

le XAML:

<UserControl x:Class="SilverlightApplication1.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"> 
<ListBox x:Name="rblSessions"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <TextBlock Text="{Binding SessionTitle}" Foreground="Black" FontSize="30" /> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

le code derrière:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Animation; 
using System.Windows.Shapes; 

namespace SilverlightApplication1 
{ 
    public partial class MainPage : UserControl 
    { 
     public MainPage() 
     { 
      InitializeComponent(); 

      List<Sessions> theSessions = makeSessions(); 
      rblSessions.ItemsSource = theSessions; 
      rblSessions.DataContext = theSessions; 

     } 

     public List<Sessions> makeSessions() 
     { 
      List<Sessions> theReturn = new List<Sessions>(); 
      for (int i = 0; i < 20; i++) 
      { 
       Sessions s = new Sessions() { SessionID = i, SessionTitle = string.Format("title{0}", i) }; 
       theReturn.Add(s); 
      } 
      return theReturn; 
     } 

    } 

    public class Sessions 
    { 
     public int SessionID; 
     public string SessionTitle; 
    } 
} 

Quand je lance l'application, je reçois une zone de liste avec 20 éléments, mais chaque élément est vide, et seulement environ 5 pixels de haut (si je mis FontSize à « 30 »)

Qu'est-ce que je fais faux? Aide et s'il vous plaît grâce

/jonathan

Répondre

1

Vous devez faire vos membres de la classe de session dans les propriétés afin de les utiliser dans une liaison. Cela devrait y remédier:

public class Sessions 
{ 
    public int SessionID { get; set; } 
    public string SessionTitle { get; set; } 
} 
+0

Oh mon dieu! Comment ai-je négligé cela? Merci * beaucoup * beaucoup /jonathan – Jonathan

Questions connexes