2012-03-31 5 views
1

xamlページsamplePage.xamlとそれに対応する.csファイルsamplePage.xaml.csがあります。このページには、テキストボックスtextBox1があります。 今私はページのインスタンスを作成します。C#を使用してxaml要素を取得するにはどうすればよいですか?

PhoneApp1.samplePage s = new PhoneApp1.samplePage(); 

その後、私は呼び出すことで、テキストボックスに値を設定したいと思います:

s.textBox1.Text = "whatever" 

が、それは誤りがあると判明 「textBox1テキストボックス」の定義と種類 のPhの最初の引数を受け入れていない拡張メソッド「textBox1テキストボックス」を含んでいない

「PhoneApp1.samplePage」をというメッセージoneApp1.samplePage」(あなたが使用して ディレクティブまたはアセンブリ参照が不足している?)

が見つかりませんでした私はC#のコードを使用してXAML要素を取得する方法を知りたいのですが?

+0

本当に奇妙だ。つまり、私が書きました簡単なテストとC#の名前付きxaml要素へのアクセスはここでは完全に機能します。より多くのコードを投稿できますか? TextBoxのxamlとC#呼び出しの場所? – Andrej

+0

私はこのメソッドがNavigationService –

答えて

0

あなたはおそらくテキストボックスがプライベートであるか保護されています。

(ケースを気)

public TextBox TextBox1 
{ 
    get 
    { 
     return this.textBox1; 
    } 
} 

それからちょうどあなたが欲しいどこからでもプロパティを使用します:、のようなものをテキストボックスを露出させるために、あなたのページでラッパーを追加s.TextBox1.Text = "whatever";

+0

それは私のために働く。 – yifei

0

いい質問は、あなたが実行時にあなたのページ/コントロールをロードするためにXamlReader.Loadを使用する必要があります、そして、あなたはそれ内のコントロールにアクセスできるようになります:

http://msdn.microsoft.com/en-us/library/cc189076(v=vs.95).aspx#using_xamlreaderload

http://blogs.silverlight.net/blogs/msnow/archive/2008/10/09/silverlight-tip-of-the-day-60-how-to-load-a-control-straight-from-xaml.aspx

+0

と実際には別の方法で解決したとは思いませんが、これは実際には良い解決策です。ありがとう! – yifei