【发布时间】:2017-04-20 14:08:32
【问题描述】:
正如标题所说,我不明白 DataGrid 是如何工作的,让我用我的代码解释一下:
public class User
{
public string NumeroTIC { get; set; }
public string NumeroCNT1 { get; set; }
public string NumeroCNT2 { get; set; }
public DateTime Date { get; set; }
}
List<User> ImpulseData = new List<User>();
ImpulseData.Add(new User() { NumeroTIC = hex2, NumeroCNT1 = hex4, NumeroCNT2 = hex6, Date = DateTime.Now });
Dispatcher.BeginInvoke((Action)(() => { dgSimple.ItemsSource = ImpulseData; }));
所以,我想在每次调用我的班级时移到另一行,例如,我第一次调用我的班级,它在第一行写,我第二次调用它在第二行写, ETC.. 目前我的代码工作正常,但总是在同一行
变量:hex2,hex4,hex6,是来自串口的字节,但没关系
【问题讨论】:
-
不要在每次要添加元素时创建新的
List<User>实例。相反,创建一个ObservableCollection<User>并将其分配给ItemsSource 属性仅一次。然后稍后将元素添加到该集合中。 -
正如@Clemens 指出的,您应该将所有用户对象添加到同一个 ObservableCollection。但“移至下一行”究竟是什么意思?
-
致@mm8 :好的,所以我的软件必须从串行端口获取一些信息。每次使用串行端口时,我都想将数据放入我的数据网格中
-
能否请您发布定义 ImpulseData 列表的类的所有代码?
-
我不敢说白痴,但实际上它从未定义过,它是在 Dispartcher.blabla 被调用的最后一行定义的