2012-04-02 113 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());