[英]c# variable listview items in a ListView
我有一個WPF ListView:
<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配置文件讀取)
我曾經將項目填充到列表中,如下所示:
//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; }
}
效果很好,將項目放置在列表上並映射到右列。 現在,我面臨的挑戰是不對這些屬性進行硬編碼,而要在XML文件中創建自己的屬性。 我想這將要求類MyItem在某種程度上是動態的。
我設法使列自動填充(半偽),如下所示:
foreach (var conf in GetColumnConfiguration())
{
{
GridViewColumn gvc = new GridViewColumn()
{
Header = GetHeaderDisplayName(),
DisplayMemberBinding = new Binding(GetBindingName())
};
}
但是我不確定如何采取類似的方法在ListView上添加項目。
我正在使用.NET 3.5。 該應用程序不能使用.NET 4或更高版本,但是如果需要,我可以安裝自定義程序集。
謝謝!
您可能想使用XmlDataProvider(只需在Google上進行搜索)並設置AutoGenerateColumns="true"
我通過在運行時使用反射創建類來解決該問題,靈感來自於這篇文章: http : //mironabramson.com/blog/post/2008/06/Create-you-own-new-Type-and-use-it運行時(C).aspx
然后,我可以處理用戶的變量屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.