如何将 ObjectListview header 绑定到 object?
How to bind ObjectListview header to an object?
我只有一个 ObjectListview,它应该在用户切换某些控件时显示不同的模型。所以使用表单设计器不是设置 headers/columns 的选项。我需要动态切换它们。
我知道我可以使用 AllColumns
描述的 here,删除并重新添加。但我的问题是我可以通过一些 object 来做到这一点,就像我将数据提供给列表视图一样吗?然后我会有不同的列 object 和数据 object 并将它们切换在一起。
如果您查看食谱,那么 29 号可能就是您想要的。 http://objectlistview.sourceforge.net/cs/recipes.html#can-i-generate-the-whole-objectlistview-directly-from-my-model
(以下摘自此来源)。
有一个 Generator
class,您可以将模型传递给它,它会根据 public 属性自动创建列。
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; }
}
我只有一个 ObjectListview,它应该在用户切换某些控件时显示不同的模型。所以使用表单设计器不是设置 headers/columns 的选项。我需要动态切换它们。
我知道我可以使用 AllColumns
描述的 here,删除并重新添加。但我的问题是我可以通过一些 object 来做到这一点,就像我将数据提供给列表视图一样吗?然后我会有不同的列 object 和数据 object 并将它们切换在一起。
如果您查看食谱,那么 29 号可能就是您想要的。 http://objectlistview.sourceforge.net/cs/recipes.html#can-i-generate-the-whole-objectlistview-directly-from-my-model
(以下摘自此来源)。
有一个 Generator
class,您可以将模型传递给它,它会根据 public 属性自动创建列。
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; }
}