【问题标题】:Order by Xamarin request按 Xamarin 请求订购
【发布时间】:2017-06-11 10:03:29
【问题描述】:

我是 Xamarin 的新手。我正在寻找一种通过 进行 sqlite 请求排序的方法,但它不起作用。

单击按钮时,我想按升序或降序对列表视图进行排序

这是我的按钮:

<Button Text="sort"  WidthRequest="40"  HeightRequest="40" Clicked="OnSort" />

这是我的方法:

void OnSort(object sender, EventArgs args)
{

    var words = mywordsdatabase.SortWords();
    listWordsView.ItemsSource = words;
}

这是我的数据库方法: //排序Worder

public List<MyWords>  SortWords()
{
    var myword = (from word in conn.Table<MyWords>()

        orderby  word.ID descending

        select word );

    return myword.ToList();
}

【问题讨论】:

  • 您需要指定“不工作”的症状
  • 当我按下按钮进行排序时,什么也没有发生
  • 您预计会发生什么?之前和之后应该有什么区别?预期的输出应该是什么?发生的输出是什么?
  • 当我点击按钮时,我想按降序或升序对列表进行排序,但我看不到如何。
  • 当我点击按钮时,列表按降序排序,现在我想要的是当我再次点击按钮时,列表又回到升序

标签: c# sqlite xamarin


【解决方案1】:

如果您想对列表进行排序,只需使用 LINQ。

编辑使用 bool 标志检查是否要按升序/降序排序,类似这样

public List<MyWords>  SortWords(bool sortAscending)
{
    var wordList = conn.Table<MyWords>();

    if(sortAscending){
        return wordList.OrderBy(w=>w.ID).ToList();
    }
    else{
        return wordList.OrderByDescending(w => w.ID).ToList();
    }
}

要更新您的列表视图,请在您的按钮单击事件中执行此操作

listWordsView.ItemsSource = null;
listWordsView.ItemsSource = mywordsdatabase.SortWords();

【讨论】:

  • 谢谢,但我点击按钮时按降序或升序排序
  • 那么就用这个wordList.OrderBy(w =&gt; w.ID).ToList();
  • 它不适用于:wordList.OrderBy(w => w.ID).ToList();什么都没发生
  • 我正在寻找一种在单击按钮时按 asc 或 desc 对列表进行排序的方法
  • 您会检查您的 ListView 是否未更新或您的列表未排序吗?尝试传递一个虚拟列表来检查您的ListView 是否正在更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-29
  • 2018-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-04
  • 2023-01-23
相关资源
最近更新 更多