【发布时间】:2017-08-22 16:11:06
【问题描述】:
Windows Phone 7.1:如何在 LongListSelector 控件中添加/删除项目?
我正在使用来自“Windows Phone Toolkit”的 LongListSelector 控件。该控件是绑定到从 ObservableCollection 继承的 ViewModel 的数据。当我尝试以下代码时:
MyObject mo = new MyObject("Name", "Description", "Value");
App.MyObjectsViewModel.Add(mo);
ViewModel 似乎更新了,但 LongListSelector 没有更新?我错过了什么?
PS:我是 Silverlight 和 WP7 开发的新手。
遵循 LongListSelector 和 DataTemplates 的 XAML。代码几乎直接来自 Windows Phone Toolkit 示例(删除了一些与格式相关的代码以保持帖子的小)
<DataTemplate x:Key="groupHeader">
<TextBlock Text="{Binding Key}"/>
</DataTemplate>
<DataTemplate x:Key="groupItemHeader">
<Border>
<TextBlock Text="{Binding Key}"
Foreground="#FFFFFF"
FontSize="{StaticResource PhoneFontSizeLarge}"/>
</Border>
</DataTemplate>
<DataTemplate x:Key="myobjectItemTemplate">
<Grid>
<StackPanel VerticalAlignment="Top" Orientation="Vertical">
<TextBlock Text="{Binding Symbol}"/>
<TextBlock Text="{Binding Value}"/>
<TextBlock Text="{Binding Description}" TextWrapping="Wrap"/>
</StackPanel>
</Grid>
</DataTemplate>
<controls:PivotItem Header="myobjects">
<toolkit:LongListSelector x:Name="myobjectsList"
Background="Transparent"
GroupHeaderTemplate="{StaticResource groupHeader}"
GroupItemTemplate="{StaticResource groupItemHeader}"
ItemTemplate="{StaticResource myobjectItemTemplate}"
GroupViewOpened="LongListSelector_GroupViewOpened"
GroupViewClosing="LongListSelector_GroupViewClosing"/>
</controls:PivotItem>
用于设置 ItemSource 的 C# 代码
var myobjectsByClassification = from myobjects in App.MyObjectsLibrary
group myobjects by myobjects.Classification into c
orderby c.Key
select new PublicGrouping<string, MyObject>(c);
this.myobjectsList.ItemsSource = myobjectsByClassification;
【问题讨论】:
-
是
MyObjectsViewModel还是ObservableCollection? -
是的,它是'ObservableCollection
' -
发布 XAML 以显示绑定,此外,如果您在分组模式下使用 LongListSelector,请发布代码以显示如何创建分组数据结构。
-
更新了帖子以显示 XAML 绑定和背后的代码。
标签: c# silverlight windows-phone-7 windows-phone