从库存数据绑定应用程序开始,我有三个字符串:LineOne,LineTwo和LineThree。现在想象我有IntThree而不是LineThree。
将数据添加到项目中,如下所示:
this.Items.Add(new ItemViewModel() { LineOne = "runtime one", LineTwo = "Maecenas praesent accumsan bibendum", IntThree = 5 });
this.Items.Add(new ItemViewModel() { LineOne = "runtime two", LineTwo = "Dictumst eleifend facilisi faucibus", IntThree = 8 });
等等。
在MainPage中我有
<StackPanel Margin="0,0,0,17" Width="432">
<TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
<TextBlock Text="{Binding LineTwo}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
<TextBlock Text="{Binding IntTwo}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>
列表框中围绕StackPanel的项目的显示顺序取决于项目添加到“项目”的顺序。我计划有一个应用栏菜单,上面写着“按LineOne排序”,“按IntThree排序”等。有人知道是否可以对此列表进行排序,然后刷新UI。我该怎么做呢?我知道ObservableCollections可以在添加和删除时更新UI,但这也适用于排序。我无法明确导航到同一页面。
感谢您的光临。
答案 0 :(得分:4)
您可以使用linq订购商品
lstItems.ItemsSource = yourList.OrderBy(i=>i.LineOne).ToList();
答案 1 :(得分:1)
关于在以下网址中执行此操作,有一篇很好的博客文章和帮助程序类