XAML 从Avalonia中的代码动态添加绑定

q7solyqu  于 2022-12-16  发布在  其他
关注(0)|答案(1)|浏览(399)

我对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不同,所以不可能像上面那样在代码中添加绑定。有什么替代方法可用,或者有什么方法可以解决这个问题?
干杯

ds97pgxw

ds97pgxw1#

停下你手头的事。
花一天的时间学习MVVM,如果你继续这样下去,你会给你自己和未来的维护者带来一场噩梦。
您的DataGrid应在DataTemplate中以XAML格式创建。
您可以使用绑定到数据集合的ItemsRepeaterlink),该数据集合又使用DataTemplate和绑定到集合中每个项的内容的DataGrid
除非有明确的需要或要求,否则不要将Struct s用于普通UI数据对象。

相关问题