如何在部分 class 之外使用变量?

How do I use a variable outside of a partial class?

我是 C# 的新手,也是 "partial" classes 的新手。

我希望访问此 "MainWindow" class 之外的 "grid" 变量。我该怎么做?

Partial 是指你的class被拆分到不同的文件中,它与变量暴露给其他classes无关。

您的网格是您当前方法中的局部变量,因此其他人无法访问它。如果您想使其可访问,请将其定义为 属性。

public DataGrid Grid { get; set; }

即使在技术上可行,您也不应该让您的数据网格在 class 之外可访问。网格是您的 class 管理的视图的一部分,因此让其他 classes 可以访问网格会破坏封装,因为您的表单的实现细节可见。

I have another class, Server, and it receives data that I wish to add to grid.ItemSource.

那么您的 Server class 应该提供一个数据源,您的表单应该将网格绑定到该数据源。换句话说,访问应该是另一个方向。

您需要像这样将变量声明为 public 的 class 成员

public partial class MainWindow ...
{
   public DataGrid grid;

   public MainWindow()
   {
      ...
   }

   public void DataGrid_Loaded(...)
   {
     ...
     grid = sender as DataGrid;
     ...
   }
}

现在可以通过这种方式访问​​变量了

var x = MainWindow.grid;