0

xaml には以下が含まれます。

<RadioButton Content="{Binding Content}" Height="70" Width="400" HorizontalAlignment="Left" Margin="0,0,0,0" Name="rbopt" VerticalAlignment="Top" IsChecked="False" FontSize="20"  Tag="{Binding Correct}" Click="radioButton1_Click_1" IsHitTestVisible="True" />

選択したラジオボタンの ID をテキストブロックに次のように表示します。

<TextBlock Grid.Row="3" Height="225" HorizontalAlignment="Left" Margin="71,28,0,0" Name="txtoptid"   VerticalAlignment="Top" Width="257" />
//table name is Options

private void radioButton1_Click_1(object sender, RoutedEventArgs e)

    {
        RadioButton radio = sender as RadioButton;

        //convert string to long

        string id = txtquesID.Text.ToString();
        long qid;
        long.TryParse(id, out qid);
        //getting count of number of options
        var opp = (from Option opt in catAppDB.Options where opt.Q_id==qid
                  select opt).Count();

         //getting the option records
        var opp1 = from Option opt in catAppDB.Options
                   where opt.Q_id == qid
                   select opt;

       var opt1list = opp1.ToList();

       for (int i = 0; i < opp; i++)
       {
           //following loop gets executed opp times because for any option selected in the group,radio.IsChecked is always true hence it displays the id of the last option in the radio button group,it should get executed only once.
           if (radio.IsChecked == true)    
           {
               txtoptid.Text = "";
               var opt2 = opt1list[i] as Option;
               var opt3 = opt2._id;
               txtoptid.Text = opt3.ToString();
           }
       } }

ユーザーがクリックした特定のラジオ ボタンのインデックスを選択しようとしていますが、radio.IsChecked はクリックしたラジオ ボタンに対して true になります。この疑問を解決するのを手伝ってください。上記のコードでは、グループ内のラジオ ボタンの最後のインデックスが選択されますが、選択したラジオのインデックスが必要です。前もって感謝します。

4

0 に答える 0