8

コンボボックスの SelectedItem をプロパティにバインドすると、通常、オブジェクト タイプの Equals メソッドを使用して、ComboBox ビューに表示する必要がある選択済みアイテムを決定します。(たとえば、この質問を参照してください)

クラスの equals メソッドを変更する必要なく、独自の比較子を作成することはできますか? メソッドを直接変更したくない理由は、クラスがビジネスロジックにも使用されており、等値比較器が同じクラスを使用する他のものに影響を与えたくないためです。

4

1 に答える 1

1

メソッドを直接変更したくない理由は、クラスがビジネスロジックにも使用されており、等値比較器が同じクラスを使用する他のものに影響を与えたくないためです。

これは通常、必要なラッパーを示します。

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

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

    public T UnderlyingRecord { get; set; }
}

このようにして、通常どおり続行でき、ビューのみがラッパー オブジェクトを使用します。

于 2013-07-22T18:55:14.920 に答える