3

ビューモデルの監視可能なコレクションにバインドされたリストボックスがあります。

これは問題なく動作しますが、小さなヒッチが 1 つ減ります...観察可能なコレクションに文字列が含まれていると仮定すると、同じ値を持つエントリがコレクションに追加されると全体が崩壊します。これを処理する最善の方法は何ですか? 文字列の代わりにカスタム構造体を使用し、次にデータ テンプレートを使用しますか?

編集:動作を説明するのを完全に忘れていました...単一のエントリをクリックすると複数の値が選択され、同じテキストを持つ他のすべての値が選択されます。

4

1 に答える 1

3

この問題は、Selector 派生コントロールの性質により発生します。ObservableCollection タイプからアイテムの選択を開始し、コレクションに重複する文字列が含まれていると、セレクターはどのアイテムを選択したかについて混乱します。新しい単純なクラス/構造体を作成し、そこに文字列を配置する必要があります。

public class Info
{
    public string Name { get; set; }
}

// ..

MyList = new ObservableCollection<Info>(new List<Info> { new Info { Name = "Hello World" }, new Info { Name = "Hello World" }, new Info { Name = "Hello World" } });

そしてそのように。

<ListBox ItemsSource="{Binding MyList}" DisplayMemberPath="Name" />
于 2009-10-23T19:20:01.713 に答える