如何从一个特殊的行填充列
本文关键字:填充 一个 | 更新日期: 2023-09-27 18:11:35
我有一个在wpf中生成的Listview
看到:
<ListView x:Name="lstVCOM" Height="450" Margin="10,10,10,0" VerticalAlignment="Top">
<ListView.View>
<GridView>
<GridViewColumn Width="25" Header="Slot" DisplayMemberBinding="{Binding Path=Slot}" />
<GridViewColumn Width="140" Header="Messung" DisplayMemberBinding="{Binding Path=MessungNr}" />
<GridViewColumn Width="140" Header="Minimal" DisplayMemberBinding="{Binding Path=Min}"/>
<GridViewColumn Width="140" Header="Maximal" DisplayMemberBinding="{Binding Path=Max}"/>
<GridViewColumn Width="140" Header="Aktuelle Messung" DisplayMemberBinding="{Binding Path=MessungAkt}"/>
<GridViewColumn Width="140" Header="Durchschnitt" DisplayMemberBinding="{Binding Path=Durschnitt}"/>
</GridView>
</ListView.View>
</ListView>
我想一步一步地填充,这意味着我想先填充Slot列,然后是Messung列,然后是.....所有在第一行,然后转到下一行,做同样的事情。
我该怎么做呢?
lstVCOM.item。补充的吗?
thx
如果您有一个表示一行的object
,我将其命名为VCOM
,那么您可以创建一个List<T>
来表示VCOM
s的集合。
public class VCOM {
public int Slot { get; set; }
public string MessungNr { get; set; }
public decimal Min { get; set; }
public decimal Max { get; set; }
public string MessungAkt { get; set; }
public decimal Durschnitt { get; set; }
}
private List<VCOM> _ListVCOM = new List<VCOM>();
public List<VCOM> ListVCOM {
get {
return _ListVCOM;
}
set {
_ListVCOM = value;
OnPropertyChanged("ListVCOM");
}
}
实现INotifyPropertyChanged
,这样当你添加一个新的VCOM
对象到List<VCOM>
时,你的DataGrid将会更新。
ListVCOM.Add(new VCOM() {
Slot = 1,
MessungNr = "Messung",
Min = 0.0M,
Max = 1.0M,
MessungAkt = "Aktuelle Messung",
Durschnitt = 0.5M,
});
要手动设置单个属性,您可以检索对象并基于知道Slot
属性设置其他属性(假设它是唯一的)。
int currentSlotNum = 1;
ListVCOM.Where(a => a.Slot.Equals(currentSlotNum)).First().Min = 1.0M;
当你想添加一个新的VCOM
对象时,只需调用上面的Add Method
,它就会用新的行更新。
<ListView x:Name="lstVCOM" Height="450" Margin="10,10,10,0" VerticalAlignment="Top" DockPanel.Dock="Top"
ItemsSource="{Binding ListVCOM, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}">
<ListView.View>
<GridView>
<GridViewColumn Width="25" Header="Slot" DisplayMemberBinding="{Binding Path=Slot}" />
<GridViewColumn Width="140" Header="Messung" DisplayMemberBinding="{Binding Path=MessungNr}" />
<GridViewColumn Width="140" Header="Minimal" DisplayMemberBinding="{Binding Path=Min}"/>
<GridViewColumn Width="140" Header="Maximal" DisplayMemberBinding="{Binding Path=Max}"/>
<GridViewColumn Width="140" Header="Aktuelle Messung" DisplayMemberBinding="{Binding Path=MessungAkt}"/>
<GridViewColumn Width="140" Header="Durchschnitt" DisplayMemberBinding="{Binding Path=Durschnitt}"/>
</GridView>
</ListView.View>
</ListView>
这是DataGrid
,有适当的ItemsSource
绑定。