2016-07-22 1 views
0

グリッド内で複数のRadioButtonコントロールを使用すると、.NET Framework 4.5を使用していて、奇妙な動作が見られます。 RadioButtonを一緒にバインドするためにGroupNameプロパティを使用していないので、個々のRadioButtonを個別に選択したり選択解除したりできるようになると思います。ただし、一度に1つのRadioButtonしか選択できません。どのように私はこの動作を抑制することができますか?ここには最小限の例があります:WPFラジオボタンがグループのバインディング動作を間違って表示する

<Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto"/> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="Auto"/> 
     </Grid.RowDefinitions> 

     <RadioButton Grid.Row="0" Grid.Column="0" ></RadioButton> 
     <RadioButton Grid.Row="1" Grid.Column="0" ></RadioButton> 
     <RadioButton Grid.Row="2" Grid.Column="0" ></RadioButton> 
    </Grid> 

答えて

3

これは予想される動作ですが、考えられる方法ではありません。 GroupNameは単なるstring以上のものを予期し、実際にはデフォルトでstring.Emptyまたは""にデフォルトするプロパティです。グループの値は実際には空の文字列であり、WPFはそれらを同じグループ化の一部として処理します。 Microsoftから:

ラジオボタンが属するグループの名前。デフォルトは空の文字列( "") です。

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.radiobutton.groupname(v=vs.110).aspx

P.S.このタイプの状況には、チェックボックスは適切ではないでしょうか?

+0

さらに、私は基本的にグリッドは一種のグループだとは思いませんか? – lokusking

+0

グリッドは実際にラジオボタンをグループ化するものではありません。デフォルトのGroupNameはすべて同じです。それらのいずれかに異なる値を割り当てると、それらは異なるグループに分けられます。 null値の代わりに空の文字列がデフォルトに設定されているため、すべてです。 – BolletuH

+0

あなたは私のアップヴォートを持っています! – lokusking

関連する問題