如何获取列表的不同属性值的动态列表?

时间:2010-11-26 15:52:33

标签: c# list data-binding distinct-values

我正在尝试将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"}

在组合框的自动完成列表中提供:“Home”,“Entertainment”。

目前,我能够获得列表中现有可用类别的静态列表,但是当我向现有列表添加新操作时,我无法更新列表。

2 个答案:

答案 0 :(得分:1)

您需要解除绑定并重新绑定列表以进行刷新。

答案 1 :(得分: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);
}