2012-04-02 15 views
0

I MVVM Muster verwenden und ich versuche, eine Problem mit Bindung ItemSource MVVM in WP7 mit

public ObservableCollection Friends property to LongListSelector

<toolkit:LongListSelector 
      ItemsSource="{Binding Friends}" 
      GroupHeaderTemplate="{StaticResource movieGroupHeader}" 
      ListHeaderTemplate="{StaticResource movieListHeader}"> 
      <toolkit:LongListSelector.ItemTemplate> 
       <DataTemplate> 
        <Grid Margin="12,8,0,8"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="Auto"/> 
          <ColumnDefinition Width="*"/> 
         </Grid.ColumnDefinitions> 

         <StackPanel Grid.Column="1" VerticalAlignment="Top"> 
          <TextBlock Text="{Binding MyBoxName}" Style="{StaticResource PhoneTextLargeStyle}" FontFamily="{StaticResource PhoneFontFamilySemiBold}" Margin="12,-12,12,6"/> 
          <TextBlock Text="{Binding MyBoxID}" Style="{StaticResource PhoneTextNormalStyle}" TextWrapping="Wrap" FontFamily="{StaticResource PhoneFontFamilySemiBold}"/> 
          <StackPanel Orientation="Horizontal"> 
           <TextBlock Text="Status:" Style="{StaticResource PhoneTextSmallStyle}"/> 
           <TextBlock Text="{Binding Status}" Style="{StaticResource PhoneTextSmallStyle}" FontFamily="{StaticResource PhoneFontFamilySemiBold}"/> 
          </StackPanel> 

         </StackPanel> 
        </Grid> 
       </DataTemplate> 
      </toolkit:LongListSelector.ItemTemplate> 
     </toolkit:LongListSelector> 

nun Fragen zu binden, wenn ich versuche,

_friends.Add(new Model.Friends { MyBoxID = e.RosterItem.Jid, MyBoxName = e.RosterItem.Name, Status = Matrix.Xmpp.PresenceType.unavailable })

es InvalidCastException gibt so hinzuzufügen i versuchte Liste anstelle von ObservableCollection. Jetzt bekomme ich keine Ausnahme, aber in LLS wird nichts angezeigt. Wie kann ich meine ObservableCollection-Eigenschaft mit Grouping an LLS binden?

Antwort

0

Für LongListSelector brauchen Sie nicht nur eine Sammlung, sondern eine komplexere Struktur zu unterstützen

Blick auf LongListCollection Gruppierung. Es ist große Klasse, die Sie sollten

Nutzungs helfen:

var list = new LongListCollection<Event, string>(Events, x => x.Date.ToLongDateString());