2012-04-02 58 views
0

使用MVVM我使用MVVM模式,我想,當我嘗試添加問題與WP7

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

它給InvalidCastException的,所以我綁定一個現在

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> 

問題是有約束力的ItemSource嘗試List而不是ObservableCollection。現在我沒有得到例外,但在LLS中沒有顯示任何內容。我怎樣才能綁定我的ObservableCollection屬性LLS與分組。

回答

0

對於LongListSelector你需要的不只是一個集合,但一些更復雜的結構,以支持分組

LongListCollection。這是偉大的階級,應該幫助你

用法:

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