如何在部分 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;
我是 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 togrid.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;