向 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;
    }

向 WPF 中的数据网格添加特定参数

在构造函数中,将 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;}
    // ...
}