在WPF中,当我将列表绑定到DataGrid并且DataContext = new A()时,我经常遇到这个问题;
class A
{
int x;
List<B> list;
class B
{
B()
{
// want to use x here, but i can't
}
}
}
请提出建议
答案 0 :(得分:7)
您无法访问它的原因是您无法直接从内部类访问类的实例变量。想一想; B类实例如何知道使用哪个A类实例来读取变量x的值?
为了访问它,你需要为B的ctor提供一个A类实例。另一种方法(如果它适合你的场景)将使x静态,但我不建议它
有关示例,请参阅:
class A
{
int x;
List<B> list;
class B
{
B(A instance)
{
// Access x here using A.x;
}
}
public void AddToList()
{
list.Add(new B(this));
}
}