2

私はSilverlightに取り組んでおり、ラジオボタンの指定された3つの項目(itmsは3つのラジオボタンを意味します)にプログラムでラジオボタンのチェックを手動で設定したいラジオボタンを作成しました。

RadioButton radio = new RadioButton();

このラジオ ボタンに " 項目 (ラジオ ボタン) が含まれているとします。以下のコードを使用して 2 番目の項目 (3 つの項目のうち) をチェックすると、以下のコードは最後の項目をチェックします。

radio.Loaded += (p, q) =>
{       
       radio.IsChecked = true;
};

ボタンの作成方法は次のとおりです。

foreach (String item in param.Component.Attributes[0].Item)
            {
                radio = new RadioButton()
                {
                    Content = item,
                    GroupName = "MyRadioButtonGroup",
                    Tag = tg

                };
 radio.Checked += (o, e) =>
                {
                    //Do  something                
                };

                sp.Children.Add(radio);
                count++; tg++;              
            }

なぜ最後の項目をチェックするのですか? c#コードでsilverlightを使用してプログラムで2番目の項目をチェックする方法は? プログラムの起動後(ボタンをクリックする前)にラジオボタンを初期化したいので、ラジオボタンのボタンをクリックする前にテキストブロックにアイテムを印刷しようとすると何も表示されないため、そうしようとします(ボタンにのみ表示されます)クリックしますが、空白の代わりにクリックする前に何かを表示したい)

4

1 に答える 1

2

あなたの質問に対する簡単な答えはradio.IsChecked=true、RadioButton をチェックするようにコードを設定することです。

これを解決する 1 つの方法は、2 番目のラジオ ボタンを追加するときに IsChecked = true を設定することです。コードは foreach ループにあるため、count 変数が機能するはずです。

   foreach (String item in param.Component.Attributes[0].Item)
            {
                radio = new RadioButton()
                {
                    Content = item,
                    GroupName = "MyRadioButtonGroup",
                    Tag = tg

                };
 radio.Checked += (o, e) =>
                {
                    //Do  something                
                };

                sp.Children.Add(radio);
                count++; tg++;   
                if (count == 2){
                radio.IsChecked=true;
                }
            }

または、 foreach ループを for ループに変更できます

for (int i = 0; i < param.Component.Attributes[0].Item.Count ; i++)
      {

      }


if (i== 2){
     radio.IsChecked=true;
   }

これらのアプローチはどちらも機能しますが、ほとんどの Silverlight アプリケーションで一般的なデータバインドされたアプローチとはうまく調和しません。選択された項目の初期状態は、実際には状態変数に格納する必要があります。

于 2014-06-24T22:25:53.377 に答える