我的问题是WPF(不是胜利形式),与此非常相似: Add Items to Columns in a WPF ListView
但是,我有遗留问题,因为我必须使用包含大约100个变量的结构。结构需要传递给一个更新其值的函数。
struct alotofthings
{
float item1;
float item2;
.
.
.
UInt16 item100;
}
我使用System.Reflections提取fieldinfo.name和GetValue()以获取变量的值。接下来我想在ListView(在运行时创建)中显示它们,如
变量名称|值(< ---这是列标题)
item1 .............. | 1223.3
item2 ..... ........ | 6.673
...... ..................... | ...
item100 ........... | 1
当使用系统管道订阅更新struct对象时,值将每隔几毫秒动态更改一次。 我想清除ListView并在每次发生时重新填充图表(方法1)。但是我需要帮助将项目添加到各自的列中。
我还想过使用INotifyPropertyChanged创建一个类(方法2),但这将与方法1的情况相同,因为我仍然需要使用更新的结构更新类。我也不知道如何动态设置绑定,因为我的类有100个属性。
最后我想到了使用ObservableCollection,但是当我通过遗留更新函数(方法3)更新结构时,我还必须清除其内容并重新添加项目。我不知道这与方法1相比有多快。
答案 0 :(得分:1)
尝试此方法
<ListView x:Name="lstvItemsList">
<ListView.View>
<GridView>
<GridViewColumn Header="Id" DisplayMemberBinding="{Binding itemName}"/>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding value}"/>
</GridView>
</ListView.View>
</ListView>
然后为保持值创建结构
public struct Items
{
public string itemName { get; set; }
public string value { get; set; }
}
然后绑定像这样的值
lstvItemsList.Items.Add(new Items
{
itemName ="item1" ,
value = "125"
}