如何使所有值写入DataGrid

时间:2019-03-03 13:03:10

标签: c#

我有几个问题:

  1. 如何解决错误clear_click; 错误代码CS0103 C#当前上下文中不存在名称“列表”

  2. 如何得出我的计算结论?

我没有找到问题的答案。

private void clear_Click(object sender, RoutedEventArgs e)
{
    dataGrid.ItemsSource = null;
    list.Clear();
    dataGrid.ItemsSource = list;
}

private void button_Click(object sender, RoutedEventArgs e)
{
    double a = 0.1;
    double b = 1.0;
    double n = 140.0;
    double h = (b - a) / 10.0;
    double s = 0, y = 0;
    for (double x = a; x <= b; x += h)
    {
        s += 1 + 3 * Math.Pow(x, 2);
    }
    DataGridTextColumn c1 = new DataGridTextColumn();
    c1.Header = "№";
    c1.Binding = new Binding("id");
    c1.Width = 50;
    dataGrid.Columns.Add(c1);
    DataGridTextColumn c2 = new DataGridTextColumn
    {
        Header = "x",
        Binding = new Binding("x"),
        Width = 100
    };
    dataGrid.Columns.Add(c2);
    DataGridTextColumn c3 = new DataGridTextColumn();
    c3.Header = "Y";
    c3.Binding = new Binding("Y");
    c3.Width = 100;
    dataGrid.Columns.Add(c3);
    DataGridTextColumn c4 = new DataGridTextColumn();
    c4.Header = "S";
    c4.Binding = new Binding("S");
    c4.Width = 100;
    dataGrid.Columns.Add(c4);
    DataGridTextColumn c5 = new DataGridTextColumn();
    c5.Header = "Y";
    c5.Binding = new Binding("Y");
    c5.Width = 100;
    dataGrid.Columns.Add(c5);
    row newRow = new row();
    newRow.id = 0;
    newRow.x = 1;
    newRow.Y = 1000;
    newRow.S = 1001;
    newRow.eps = 1;
    List<row> list = new List<row>();
    list.Add(newRow);
    dataGrid.ItemsSource = list;
}

1 个答案:

答案 0 :(得分:0)

  

名称“列表”在当前上下文中不存在

因为在该上下文中不存在。在该方法或任何包含范围的内部,没有名为list的变量。您可以在不同方法中使用一个名为list的变量,但这仅是该方法的本地变量。

如果list应该在该类的多个方法中可用,请将其设置为类级变量:

List<row> list = new List<row>();

private void clear_Click(object sender, RoutedEventArgs e)
{
    //...
    list.Clear();
    //...
}

private void button_Click(object sender, RoutedEventArgs e)
{
    //...
    newRow.eps = 1;
    list.Add(newRow);
    dataGrid.ItemsSource = list;
}

虽然您还不清楚您在问什么,但此可能也解决了“如何使所有值写入DataGrid”的问题。每次调用button_Click时,在当前代码中,您将创建一个全新的列表,向其中添加一个元素,并将该一个元素的列表绑定到网格。但是,通过使列表成为具有该方法之外的作用域的类级实例,每次调用button_Click时,都会向同一列表中添加另一个新元素。因此,每次点击都会(应该)在网格中添加一行。