我的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的含义


  指示字符串比较必须忽略不带空格的组合字符,例如变音符号。

10-05 23:02