1

カスタム オブジェクトのリストから抽出された文字列のリストに ComboBox コントロールをバインドしようとしています。

ここに私が使用しているオブジェクトがあります:

public class Operation
{
    public DateTime ValueDate { get; set; }
    public int Amount { get; set; }
    public string Category { get; set; }
}

私がやろうとしているのは、新しい操作のカテゴリを入力するために使用されるコンボ ボックスを、操作のリストに既に存在する個別のカテゴリのリストにバインドすることです。

例 :

操作のリスト:

{04/12/2010, 100, "Home"}
{05/12/2010, 100, "Home"}
{05/12/2010, 200, "Entertainment"}

コンボボックスのオートコンプリート リストで利用可能: "ホーム"、"エンターテイメント"。

現在、リストに存在する使用可能なカテゴリの静的リストを取得できますが、新しい操作を既存のリストに追加すると、リストを更新できません。

4

2 に答える 2

1

リストを更新するには、バインドを解除して再バインドする必要があります。

于 2010-11-26T15:56:35.253 に答える
0

あなたはこれを行うことができます:

_combo.ItemsSource = _operationsCollection;
_combo.DisplayMemberPath = "Category";
_combo.Items.Filter = Filter;

private bool Filter(object operationObj)
{
    var operation = (Operation)operationObj;
    var first = _operationsCollection.First(p => p.Category == operation.Category);
    return ReferenceEquals(operation, first);
}
于 2010-11-26T17:12:51.990 に答える