如何将ObjectListview头绑定到一个对象?

时间:2017-08-28 09:23:28

标签: c# objectlistview

我有单个ObjectListview,当用户切换某些控件时,它应显示不同的模型。因此,使用表单设计器不是设置标题/列的选项。我需要动态切换它们。

我知道我可以使用描述hereAllColumns来删除并重新添加。但我的问题是我可以通过某个对象来实现,就像我将数据提供给列表视图一样吗?然后我会将不同的列对象与数据对象一起使用并将它们一起切换。

1 个答案:

答案 0 :(得分:1)

如果您查看食谱,那么第29号可能就是您所追求的。 http://objectlistview.sourceforge.net/cs/recipes.html#can-i-generate-the-whole-objectlistview-directly-from-my-model
(以下摘自此来源)。

有一个Generator类,您可以将模型传递给它,它会根据公共属性自动创建列。

Generator.GenerateColumns(this.olv1, typeof(MyModelClass), true);

您甚至可以使用OLVColumn属性来增强模型。

public class MyClass {

    [OLVColumn(Width = 150)]
    public DateTime When { get; set; }

    [OLVColumn(DisplayIndex = 5, Width = 75, TextAlign = HorizontalAlignment.Right)]
    public decimal Rate { get; set; }

    [OLVColumn("From", DisplayIndex=1, Width = 50, TextAlign = HorizontalAlignment.Center)]
    public string FromCurrency { get; set; }

    [OLVColumn("To", DisplayIndex = 3, Width = 50, TextAlign = HorizontalAlignment.Center)]
    public string ToCurrency { get; set; }

    [OLVColumn("Amount", DisplayIndex = 2, AspectToStringFormat = "{0:C}", Width = 75, TextAlign = HorizontalAlignment.Right)]
    public decimal FromValue { get; set; }

    [OLVColumn("Amount", DisplayIndex = 4, AspectToStringFormat = "{0:C}", Width = 75, TextAlign = HorizontalAlignment.Right)]
    public decimal ToValue { get; set; }

    [OLVColumn(IsVisible = false)]
    public string UserId { get; set; }
}