2011-01-08 9 views
2

XAMLのMainWindowにTextBlockを追加します。そして、別の.csファイルにある別のクラスのTextBlock Textを変更する必要があります。私は、次のことを試してみました:クラスから別のファイルにアクセスするMainWindowコントロール

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

クラスはメインウィンドウクラスと同じファイル内に存在している、しかし、クラスは別のファイルに存在している場合、それは私にはnull例外をスローした場合それは働きました。私は既に追加しましたusing fooNameSpace;まだ動作しません

別のファイルクラスからMainWindowとそのコントロールへの参照を作成する正しい方法を理解できません。ヒント誰ですか? ありがとう、

答えて

0

あなたはXAMLについて言及していますので、私はあなたがWPFアプリケーションについて話していると仮定します。 .xamlと.xaml.csファイルが手に入ります。その "コントロール"内の何かにアクセスする必要がある場合は、それをインスタンス化するか、外部クラスでその参照が必要になります。

エラーについては、tw1を宣言していますが、インスタンス化されていないため、Null例外エラーが発生します。 tw1 = thisを実行することもできません。

+0

はい、WPFです。私はtW1 =これだが。 tW1をMainWindowにインスタンス化し、別のファイルの別のクラスからのボタンへのアクセスを許可します。そうでない場合は、どのようにインスタンス化するか参照する必要がありますか? – KMC

4

の代わりにinternalを使用してください。

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

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

internalキーワードは、メインウィンドウコントロールへのアクセスを得るために他のCSファイル内の他のクラスを可能にします。 しかし、私は他のクラスがMainWindowの他のすべてのものにアクセスできるようにするためにこの問題を解決するために内部を使用することについてはあまりよく分かりません。

関連する問題