单击按钮时对列表框项进行排序

时间:2012-08-29 11:18:35

标签: c# xml windows-phone-7

在我的Windows手机项目中 我有一个来自xml的列表框绑定数据

<ListBox x:Name="listBox02">
    <ListBox.ItemTemplate>
         <DataTemplate>
              <StackPanel Margin="20" >
                  <TextBlock Text="{Binding Namee}"/>
                   <TextBlock Text="{Binding Examinoo}"/>
                   <TextBlock Text="{Binding Statuss}"/>
                    <!--<TextBlock Text="{Binding Idd}"/>-->
              </StackPanel>
         </DataTemplate>
    </ListBox.ItemTemplate>
 </ListBox>
使用

XDocument loadedCustomData = XDocument.Load("PeopleCustom.xml");
var filteredData = 
    from c in loadedCustomData.Descendants("Mathima")
    where c.Attribute("Id").Value == "1"
    select new Iatriki() {
                  Namee = "Ονομα: " + c.Attribute("Name").Value,
                  Examinoo = "Εξάμηνο: " + c.Attribute("Examino").Value,
                  Idd = c.Attribute("Id").Value,
                  Statuss = c.Attribute("Status").Value,
           };

 listBox02.ItemsSource = filteredData;

点击按钮时,我想按“Examinoo”对列表进行排序

这是按钮的事件处理程序:

private void btn_sort_Click(object sender, RoutedEventArgs e)
{
    listBox02.Items.SortDescriptions.Add(
                new SortDescription("Content", ListSortDirection.Descending));

}

我收到以下错误:

  

System.Windows.Controls.ItemCollection'不包含'SortDescriptions'的定义,并且没有扩展方法'SortDescriptions'接受类型'System.Windows.Controls.ItemCollection'的第一个参数可以找到(你错过了吗?使用指令或汇编引用?)`

1 个答案:

答案 0 :(得分:2)

对于同样的问题,我正在遵循这种方法

在XDocument行之后,删除列表框行

listBox02.ItemsSource = filteredData; //remove this line and add the following 2 lines

ObservableCollection<Iatriki> myCollection = new ObservableCollection<Iatriki>(filteredData);
listBox02.ItemsSource = myCollection;

然后按下按钮

listBox02.ItemsSource = myCollection.OrderBy(item => item.Examinoo);