从单独的文件中的类访问MainWIndow Control

时间:2011-01-08 07:03:01

标签: wpf controls

我在XAML中向MainWindow添加了TextBlock。我需要在一个单独的类中更改TextBlock文本,该类位于单独的.cs文件中。我尝试了以下方法:

private static fooNameSpace.MainWindow tW1;
tW1 = this;
tW1.textBlock1.Text = "This is a paragraph";

如果类与MainWindow类驻留在同一个文件中,它会起作用,但如果该类驻留在单独的文件中,它会抛出一个null异常。我已经添加了using fooNameSpace;仍然无效

我无法找出从单独的文件类到MainWindow及其Control的引用的正确方法。有人提示吗? 感谢,

2 个答案:

答案 0 :(得分:4)

要回答我的问题 - 请使用internal代替public

// in MainWindow.xaml.cs internal
internal static fooNameSpace.MainWindow tW1;

// in foo.cs
MainWindow.tW1.txtBlock1.Text = "This is a paragraph";

internal关键字允许其他cs文件中的其他类访问MainWindow控件。 但是我不太确定使用内部来解决这个问题,因为它允许我的其他类访问我的MainWindow中的其他所有内容...那里有更好的选择吗?

答案 1 :(得分:0)

你提到过XAML,所以我假设你在谈论一个WPF应用程序。 .xaml和.xaml.cs文件齐头并进。如果您需要访问该“控件”中的任何内容,您将需要实例化它或在外部类中需要它的引用。

至于错误,你声明tw1但它没有实例化 - 这就是你得到Null异常错误的原因。做tw1 = this也行不通。