簡體   English   中英

ListView中的C#變量ListView項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM