向 WPF 中的数据网格添加特定参数
本文关键字:添加 参数 网格 数据网 WPF 数据 | 更新日期: 2023-09-27 18:30:37
所以我尝试了一段时间来寻找像我这样的案例,但找不到任何有用的东西。
我的问题是我有一个数据网格,我需要有 2 列,其中包含分配名称和分配的创建者。Ive allready创建了带有标题的列,如下所示。
<DataGrid AutoGenerateColumns="False" Height="257" HorizontalAlignment="Left"
Margin="12,12,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="479">
<DataGrid.Columns>
<DataGridTextColumn Header="Assignments" />
<DataGridTextColumn Header="Creator" />
</DataGrid.Columns>
</DataGrid>
此外,我尝试将此代码排列为测试。对于最终解决方案,我将从数据库中获取分配列表,但那时还没有。
public MainWindow()
{
InitializeComponent();
assignment1 = new Assignment();
assignment2 = new Assignment();
assignments = new List<Assignment>();
assignment1.AddBasicInformation("Engelsk A", "Hans Rueløkke", "Han gik en tur", 0);
assignment1.AddBasicInformation("Historie B", "Lis Hansen", "Hvad hed den første mand på månen? ___.", 0);
assignments.Add(assignment1);
assignments.Add(assignment2);
for(int i = 0; i < assignments.Count; i++)
{
dataGrid1.Items.Add(assignments);
}
}
如您所见,赋值包含 3 个字符串、一个整数,此外它们还包含几个列表。然而,我想在数据网格中显示的唯一信息是前 2 个字符串。有人可以帮助我如何实现这一目标吗?
编辑了我的作业课的重要部分,如下所示
public class Assignment
{
private string name;
private string creator;
private string assignmentText;
private int type;
private List<Answer> answerlist;
public void AddBasicInformation(string aname, string acreator, string aassignmentText, int atype)
{
name = aname;
creator = acreator;
assignmentText = aassignmentText;
type = atype;
answerlist = new List<Answer>();
}
public string GetName()
{
return name;
}
public string GetCreator()
{
return creator;
}
在构造函数中,将 for 循环替换为:
dataGrid1.ItemsSource = assignments;
然后,在 XAML 中,可以声明列的绑定(假设 Assignment 类具有名为 Assignemnts 和 Creator 的属性):
<DataGridTextColumn Header="Assignments" Binding="{Binding Name} />
<DataGridTextColumn Header="Creator" Binding="{Binding Creator}" />
在本例中,ItemsSource 的绑定是一种反模式,但它将帮助你入门。
有关详细信息,请参阅 WPF 数据网格类。
编辑:响应OP更新的代码示例
WPF 中的所有绑定都必须使用属性完成。更新作业类以使用属性而不是字段:
public class Assignment
{
Public string Name {get; set;}
Public string Creator {get; set;}
Public string AssignmentText {get; set;}
// ...
}