我对Avalonia还很陌生,一直在负责将一个C# winforms应用程序转换到Avalonia,我遇到了一个障碍。
我动态地创建多个DataGrid(每个学生时间表对应一个DataGrid),所以这是在下面的代码中完成的:
for (int i = 0; i < studentcount; i++) {
DataGrid dg = new DataGrid();
var date = new DataGridTextColumn();
date.Header = "Date";
// date.Binding = new Binding("date"); ?
dg.Columns.Add(date);
canvas.Children.Add(dg);
}
从我通过WPF看到的情况来看,可以将每列绑定到一个结构属性,方法是
date.Binding = new Binding("date");
(其中date是结构的字符串属性),因此通过这种方式可以将项添加为
dg.Items.Add(new Student { date = "1/1/2022" });
然而,从我所看到的,因为avalonia绑定的工作方式与WPF不同,所以不可能像上面那样在代码中添加绑定。有什么替代方法可用,或者有什么方法可以解决这个问题?
干杯
1条答案
按热度按时间ds97pgxw1#
停下你手头的事。
花一天的时间学习MVVM,如果你继续这样下去,你会给你自己和未来的维护者带来一场噩梦。
您的
DataGrid
应在DataTemplate
中以XAML格式创建。您可以使用绑定到数据集合的
ItemsRepeater
(link),该数据集合又使用DataTemplate
和绑定到集合中每个项的内容的DataGrid
。除非有明确的需要或要求,否则不要将
Struct
s用于普通UI数据对象。