如何对从IsolatedStorage绑定的ObservableCollection进行排序

时间:2013-07-03 00:35:16

标签: windows-phone-7 sorting binding windows-phone-8 observablecollection

我将从IsolatedStorage检索到的图像集合绑定到我的View,但是我在更改图像显示顺序方面遇到了问题。每个图像都有一个时间戳,我希望能够按升序或降序排序。截至目前,绑定工作,但当我尝试在绑定到我的列表框之前更改排序顺序时,UI上没有显示任何内容。

MainPage.xaml中

<ListBox x:Name="Recent" ItemsSource="{Binding Pictures}" Margin="8"
                     SelectionChanged="recent_SelectionChanged" toolkit:TiltEffect.IsTiltEnabled="True"
                     ItemContainerStyle="{StaticResource MyStyle}">
                <ListBox.ItemsPanel>
                    <ItemsPanelTemplate>
                        <toolkit:WrapPanel Orientation="Horizontal" />
                    </ItemsPanelTemplate>
                </ListBox.ItemsPanel> 
            </ListBox>

MainPage.xaml.cs中

// Constructor
    public MainPage()
    {
        InitializeComponent();

        //This is working, but is not sorted
        //DataContext = PictureRepository.Instance;

        //Attempt at sorting before binding
        //from SettingsPage, if AscendingSort = True then sort ascending
        if (Settings.AscendingSort.Value)
        {
            //Give no errors, but does not display on UI
            DataContext = PictureRepository.Instance.Pictures.OrderBy(s => s.DateTaken);                
        }
        else
        {
            DataContext = PictureRepository.Instance.Pictures.OrderByDescending(s => s.DateTaken);
        }
    }

不确定这里究竟是什么问题? 注意,在调试时,我可以看到PictureRepository.Instance包含要在视图中显示的图像。

1 个答案:

答案 0 :(得分:0)

试试这个,

    listItems = new ObservableCollection<YourType>(listItems.OrderBy(x => x.DateTaken));