c#listview中的变量listview项
我得到了一个WPF列表视图:c#listview中的变量listview项,c#,wpf,C#,Wpf,我得到了一个WPF列表视图: <ListView Margin="10,10,0,10" Grid.Row="0" HorizontalContentAlignment="Right" MouseDoubleClick="ListView_MouseDoubleClick" VerticalAlignment="Stretch" Name="listViewConfigItems" MinHeight="300" HorizontalAlignment="Stretch"> //ha
<ListView Margin="10,10,0,10" Grid.Row="0" HorizontalContentAlignment="Right" MouseDoubleClick="ListView_MouseDoubleClick" VerticalAlignment="Stretch" Name="listViewConfigItems" MinHeight="300" HorizontalAlignment="Stretch">
//hard coded columns
</ListView>
这很好,项目被放置在列表中并映射到正确的列。现在我的挑战是不硬编码这些属性,而是能够在XML文件中创建自己的属性。我想这需要MyItem类在某种程度上是动态的
我设法使列自动填充,如下所示(半伪):
但我不知道如何使用类似的方法在ListView上添加项
我正在使用.NET3.5。应用程序无法使用.NET 4或更高版本,但如果需要,我可以安装自定义程序集
谢谢 您可能想使用XmlDataProvider(只需谷歌一下)并设置
AutoGenerateColumns=“true”
我通过在运行时使用反射创建类解决了这个问题,灵感来源于这篇文章:
这样我就可以处理用户提供的变量属性。谢谢,但数据来自何处并不重要。我需要一种将变量数据添加到listview的方法。我只能通过在Myitem类上创建与标题中的displaymember绑定匹配的属性来让它工作,但是在这种情况下,我不知道绑定和属性将是什么(它是变量),所以我不知道属性的名称。只要阅读它,也许这可以工作。但我的问题是,对象数据不是来自XML文件,而是来自Enterprisemanagement对象。xml文件实际上是一个管理包,因此需要采用特殊的格式。在这里,我只控制希望从应用程序的内部对象中获取哪些属性。这是您的objectList吗?该列表中有什么类型的对象/类?类型为EnterpriseManagement对象(SCOM项目)。问题主要是将变量属性填充到我的ListView中,我发现的唯一方法是向它提供一个类,但是这个类的属性不是动态的。如果我可以这样做:
内部类MyItem{propertyArray[0]{get;set}propertyArray[1]{get;set}…}
或者可以以其他方式馈送listview?谢谢你,塞西莉亚。
//Populate items to listView
foreach (var obj in objectList)
{
myWindow.listViewConfigItems.Items.Add(new MyItem
{
DisplayName = obj.DisplayName,
Title = obj.Title,
Description = obj.Description
});
}
//....//
internal class MyItem
{
public string DisplayName { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
foreach (var conf in GetColumnConfiguration())
{
{
GridViewColumn gvc = new GridViewColumn()
{
Header = GetHeaderDisplayName(),
DisplayMemberBinding = new Binding(GetBindingName())
};
}