2016-07-22 33 views
0

我使用.NET Framework 4.5並觀察一些奇怪的行爲,當我在網格中使用多個RadioButton控件時。我希望能夠單獨選擇和取消選擇每個RadioButton,因爲我沒有使用GroupName屬性將RadioButtons綁定在一起。但是,我一次只能選擇一個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將它們作爲同一分組的一部分進行處理。 From Microsoft:

單選按鈕所屬的組的名稱。缺省是 一個空字符串(「」)。

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

附:複選框不適合這種情況嗎?

+0

另外我會說,基本上一個網格是一種羣,不是嗎? – lokusking

+0

網格並不是實際上將單選按鈕分組的單元。這是默認的組名是完全相同的。一旦你爲它們中的任何一個分配了不同的值,它們就被分成不同的分組。這都是因爲它默認爲空字符串而不是空值。 – BolletuH

+0

你有我的upvote先生! – lokusking