【问题标题】:Issue with binding itemsource using MVVM in WP7在 WP7 中使用 MVVM 绑定 itemsource 的问题
【发布时间】:2012-04-02 17:13:15
【问题描述】:

我正在使用 MVVM 模式,我正在尝试绑定一个

公共 ObservableCollection Friends 属性到 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>

现在的问题是当我尝试添加时

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

它给出了 InvalidCastException 所以我尝试使用 List 而不是 ObservableCollection。现在我没有得到异常,但 LLS 中没有显示任何内容。如何通过 Grouping 将 My ObservableCollection 属性绑定到 LLS。

【问题讨论】:

    标签: windows-phone-7 longlistselector


    【解决方案1】:

    对于LongListSelector,您不仅需要一个集合,还需要一些更复杂的结构来支持分组

    看看LongListCollection。很棒的课程应该可以帮助到你

    用法:

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

    【讨论】:

      猜你喜欢
      • 2015-06-05
      • 1970-01-01
      • 2018-12-28
      • 1970-01-01
      • 1970-01-01
      • 2013-01-31
      • 2018-09-20
      • 1970-01-01
      • 2014-02-26
      相关资源
      最近更新 更多