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 になります。この疑問を解決するのを手伝ってください。上記のコードでは、グループ内のラジオ ボタンの最後のインデックスが選択されますが、選択したラジオのインデックスが必要です。前もって感謝します。