【发布时间】:2014-02-14 05:03:07
【问题描述】:
我有一个我正在尝试排序的数据网格。数据网格有一列字符串。在此列中,我按搜索字符串执行过滤。完成后,我想按单元格内搜索字符串前面的单词或后面的单词对数据网格进行排序。我将如何进行这样的排序?
更新
这是我到目前为止所得到的。
private void tbSearch_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox tb = sender as Textbox;
_searchstr = tb.Text;
ICollectionView view = CollectionViewSource.GetDefaultView(SentenceLists);
view.Filter = new Predicate<object>(FilterBySearch);
}
这是过滤器功能,我正在考虑向我的 SentenceLists 对象添加另一个名为 sortWord 的属性并对其进行排序。但我无法让它工作。
private bool FilterBySearch(object item)
{
ServiceTemplateController.SentenceList sl = item as ServiceTemplateController.SentenceList;
if (_searchstr.ToUpper() == "") return true;
if (sl.sentence.Contains(_searchstr.ToUpper()))
{
string[] strArray = sl.sentence.Split(' ');
for (int i = 0 ; i < strArray.Count(); i++)
{
if (strArray[i].Contains(_searchstr.ToUpper()))
{
if (radioBefore.IsChecked == true)
{
if (i == 0) sl.sortWord = strArray[i];
else sl.sortWord = strArray[i - 1];
}
else //radio after is selected then.
{
if (i == strArray.Count() - 1) sl.sortWord = strArray[i];
else sl.sortWord = strArray[i + 1];
}
}
}
return true;
}
return false;
}
【问题讨论】:
-
你尝试过的...
-
您能否提供一个示例以便我们提供解决方案?