我有几个问题:
如何解决错误clear_click; 错误代码CS0103 C#当前上下文中不存在名称“列表”
如何得出我的计算结论?
我没有找到问题的答案。
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;
}
答案 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
时,都会向同一列表中添加另一个新元素。因此,每次点击都会(应该)在网格中添加一行。