1

我在 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 列,然后......全部在第 1 行,然后转到下一行并执行相同操作。

我怎样才能做到这一点 ?

lstVCOM.item.add ?

谢谢

4

1 回答 1

0

如果你有一个object代表一行的,我将它命名为VCOM,那么你可以创建一个List<T>代表VCOMs 的集合。

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>.

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绑定的 , 。

于 2013-04-30T12:49:13.703 回答