我的Windows Phone应用程序有一个ListBox(从JSON填充)和一个TextBox,用于在ListBox上搜索项目。
这段代码可以正常工作,但是我需要能够搜索“ lapis”并找到“lápis”。
因此,我需要在搜索中忽略重音符号。
怎么了
private void txtSearch_TextChanged(object sender, TextChangedEventArgs e)
{
if (Items != null)
{
this.List1.ItemsSource = Items.Where(w => w.descricao.ToUpper().Contains(SearchTextBox.Text.ToUpper()));
}
}
private void WatermarkTB_GotFocus(object sender, RoutedEventArgs e)
{
if (SearchTextBox.Text == "Pesquisar Produto...")
{
SearchTextBox.Text = "";
SolidColorBrush Brush1 = new SolidColorBrush();
Brush1.Color = Colors.Red;
SearchTextBox.Foreground = Brush1;
}
}
最佳答案
更改
w.descricao.ToUpper().Contains(SearchTextBox.Text.ToUpper())
至
CultureInfo.CurrentCulture.CompareInfo.IndexOf(
w.descricao,
SearchTextBox.Text,
CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase) != -1
IgnoreNonSpace
的含义指示字符串比较必须忽略不带空格的组合字符,例如变音符号。