1. ホーム
  2. c#

[解決済み】値が期待した範囲に収まらない

2022-02-06 02:03:16

質問内容

以下のコードを使用して、Webサービスからリストを受信してリストボックスを更新しています。

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

使用すること。

void client_userKeywordsCompleted(object sender, userKeywordsCompletedEventArgs e)
{

    string result = System.Convert.ToString(e.Result);

    for (int i = 0; i < e.Result.Count; i++)
    {

        ListBoxItem lbitem = new ListBoxItem();

        lbitem.Name = "lb_" + i;
        lbitem.Content = e.Result[i];

        lbitem.AddHandler(UIElement.MouseLeftButtonDownEvent, new MouseButtonEventHandler(ListBoxItem_DoubleClickEvent), true);
            
        listBox1.Items.Add(lbitem);
            
    }
       

これは、子ウィンドウがロードされるときに使うので、問題なく動作します。 ListBox はデータベースからリストを取得しますが、ユーザが ListBox を選択すると、選択した項目を編集するオプションがあります。そこで、編集が行われると、編集ボタンがあり、データベースのテーブルのカラムが更新されます。そこで、ボタンをクリックすると、再び前述のコードを呼び出して、データベースのテーブルのカラムを更新しています。 ListBox を新しい資格情報とともに送信します。しかし、これではエラーが返ってきてしまいます。

値が予想される範囲にありません。

ボタンをクリックすると、Webメソッドを呼び出すことができません。 ListBox ?

解決方法は?

同じ名前のListBoxItemをページに追加しようとしていることが原因かもしれません。

リストボックスの内容を新しく取得した値で更新したい場合は、まずリストボックスの内容を手動で削除する必要があります。

同じような問題が発生した場合はこちらをご覧ください シルバーライト 値が期待される範囲に収まらない例外