-1

Silverlight が Web サービスからの非同期応答をどのように使用するかを把握するのに苦労しています。私は宣言しました-

public partial class Users : Page
{
    public string PID;

そして、使用-

 if
 {
 WebService.Service1SoapClient client = new WebService.Service1SoapClient();
 string profile = System.Convert.ToString(((ListBoxItem)listBox1.SelectedItem).Content);
 client.pidReturnCompleted += new EventHandler<pidReturnCompletedEventArgs>(client_pidReturnCompleted);
 client.pidReturnAsync(USERID, profile);
 }
 Else
 {

 KeyWords keywords = new KeyWords();

 keywords.textBox3.Text = PID;
 keywords.Show();

どこで PID-

void client_pidReturnCompleted(object sender, pidReturnCompletedEventArgs e)
    {
        PID = e.Result;
    }

次に、この PID をInitialise ComponentKeywords 子ウィンドウのセクションで使用する必要がありますが、ウィンドウが読み込まれると、textBox.Text (PID 値) が時間内に取得されず、null であると表示されます。Initialise Component ステージで PID を使用するにはどうすればよいですか? キーワード ウィンドウで

public KeyWords()
    {
        InitializeComponent();

        this.Loaded += new RoutedEventHandler(KeyWords_Loaded);

        WebService.Service1SoapClient client = new WebService.Service1SoapClient();
        client.userKeywordsCompleted += new EventHandler<userKeywordsCompletedEventArgs>(client_userKeywordsCompleted);
        client.userKeywordsAsync(PID);

    }

どこ-Public Int PID = textBox3.Text //this is where the value from the previous window is passed in.

4

1 に答える 1

0

Keywords_Loaded void を作成してソートしました。その後、前のフォームから渡された値を使用できました。

于 2012-05-09T15:07:00.010 に答える