WPF ComboBox的自定义相等比较器

Lou*_*hys 7 .net data-binding wpf combobox

当我们将组合框的SelectedItem绑定到属性时,通常它将使用对象类型的Equals方法来确定应该在ComboBox视图中显示的所选项.(例如,请参阅此问题)

是否有可能为此创建自己的比较器,而无需修改类的equals方法?我不想直接修改方法的原因是因为该类也用于业务逻辑,我不希望我的相等比较器影响使用同一类的其他东西

Wil*_*ien 1

我不想直接修改该方法的原因是因为该类也用于业务逻辑,并且我不希望我的相等比较器影响使用同一类的其他事物

这通常表明需要一个包装器:

public class Wrapper<T>
{
    public override string ToString() { ... }

    public override bool Equals(object obj) { ... }

    public T UnderlyingRecord { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这样您就可以照常进行,并且只有视图将使用包装器对象。