C# WPF组合框-不区分大小写的数据绑定

C# WPF组合框-不区分大小写的数据绑定,c#,C#,如果我对WPF组合框进行数据绑定,有没有办法使绑定不区分大小写 例如,如果组合框绑定到一个值为HELLO的属性,则让它选择值为HELLO的组合框项?在视图模型上创建一个新属性,该属性提供转换为所需格式的字符串的属性值。将ComboBox(或其他WPF小部件)绑定到该属性 public string OtherProperty { get { .. } set { Notify(); Notify("NameOfValue"); }

如果我对WPF组合框进行数据绑定,有没有办法使绑定不区分大小写


例如,如果组合框绑定到一个值为HELLO的属性,则让它选择值为HELLO的组合框项?

在视图模型上创建一个新属性,该属性提供转换为所需格式的字符串的属性值。将ComboBox(或其他WPF小部件)绑定到该属性

public string OtherProperty
{
    get { .. }
    set
    {
        Notify();
        Notify("NameOfValue");
    }
}
例如:

public string NameOfValue
{
    get
    {
        return this.OtherProperty.ToCapitalizedString();
    }
}
通过这种方式,您可以精确地控制属性值的格式,以显示它。但是,现在必须向该其他属性添加更改通知,以便在更改OtherProperty的值时,数据绑定知道如何更新新属性的显示

public string OtherProperty
{
    get { .. }
    set
    {
        Notify();
        Notify("NameOfValue");
    }
}

我通过实现IMultiValueConverter实现了这一点

转换器应用于组合框上的ItemsSource绑定,并设置两个绑定。要选择的值的第一个值。第二个绑定到ComboBox的ItemsSource属性,它是一个可能值的列表

<ComboBox ItemsSource="{Binding Path=DataContext.EntityTypeOptions, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}">
    <ComboBox.SelectedValue>
        <MultiBinding Converter="{StaticResource SelectedValueIgnoreCaseConverter}">
            <Binding Path="UpdatedValue" ValidatesOnDataErrors="True" UpdateSourceTrigger="PropertyChanged" />
            <Binding Path="ItemsSource" Mode="OneWay" RelativeSource="{RelativeSource Mode=Self}" />
        </MultiBinding>
    </ComboBox.SelectedValue>
</ComboBox>

在什么情况下您需要这个?组合框绑定到集合,即主数据表和一些旧值,这些值在另一种情况下存储到另一个表中,我们绑定到一个值为HELLO的属性。我不能说100%不可能,但不可能,反射是区分大小写的(就像C#中的所有其他内容一样)所以这是行不通的。用一个具有string属性的类来填充它,并重写该类上的Equals(),以盲法比较string属性的大小写。@BradleyDotNET他希望进行大小写盲值比较。该属性未命名为
Hello
;它的值是“HELLO”。