2016-07-22 11 views
0

Ich verwende das .NET Framework 4.5 und beobachte seltsames Verhalten, wenn ich mehrere RadioButton-Steuerelemente in einem Grid verwende. Ich würde erwarten, jeden RadioButton einzeln auswählen und abwählen zu können, da ich nicht die GroupName-Eigenschaft verwendet habe, um die RadioButtons zu verbinden. Ich kann jedoch immer nur einen RadioButton auswählen. Wie kann ich dieses Verhalten unterdrücken? Hier ein minimales Beispiel:WPF-Optionsfeld zeigt falsches Gruppenbindungsverhalten an

<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> 

Antwort

3

Technisch ist das erwartetes Verhalten, aber nicht in der Art, wie Sie vielleicht denken. GroupName ist eine Eigenschaft, die nichts mehr als nur string erwartet und tatsächlich standardmäßig auf string.Empty oder "". Es gibt tatsächlich einen Wert für die Gruppe, es ist nur eine leere Zeichenfolge und WPF verarbeitet sie als Teil derselben Gruppierung. Von Microsoft:

Der Name der Gruppe, zu der der Radioknopf gehört. Der Standardwert ist eine leere Zeichenfolge ("").

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

P. S. Sind Checkboxen für diese Art von Situation nicht geeigneter?

+0

Zusätzlich würde ich sagen, im Grunde ist ein Gitter eine Art Gruppe, nicht wahr? – lokusking

+0

Das Grid ist nicht das, was die Radiobuttons tatsächlich gruppiert. Es ist, dass der Standard GroupName derselbe ist. Sobald Sie einem von ihnen einen anderen Wert zuweisen, werden sie in verschiedene Gruppierungen unterteilt. Es ist alles, weil es standardmäßig eine leere Zeichenfolge anstelle eines Nullwerts verwendet. – BolletuH

+0

Sie haben mein upvote Herr! – lokusking

Verwandte Themen