2009-12-08 34 views
1

我得到一個非常簡單的用戶控制(的Visifire圖+ datepickers和一些單選按鈕來控制濾波等):WPF用戶控制單選按鈕預選

<GroupBox Header="Scale" Width="159" HorizontalAlignment="Left" Margin="10,47,0,0" 
      Height="38" VerticalAlignment="Top" Name="scalingBox"> 
    <Canvas Height="16"> 
     <RadioButton Name="scaleDays" Content="Days" GroupName="g2" Width="47" 
        IsChecked="True" Checked="scale_Change"/> 
     <RadioButton Name="scaleHours" Content="Hours" GroupName="g2" Canvas.Left="60" 
        Width="59" Checked="scale_Change"/> 
    </Canvas> 
</GroupBox> 

第一個位是設置IsChecked爲true的第一個按鈕沒有按」顯示控件時不做任何事情。

尋找解決方法我公開了一些方法來檢查父窗口所需的按鈕,但是當我有多個調用這些方法的MyControl時,只會檢查上次調用方法的一個實例上的按鈕。像這樣:

myControl1.SetDefaultScale(); 
myControl2.SetDefaultScale(); 

只檢查上myControl2的按鈕,使組中的所有按鈕,選中上myControl1

任何想法可能會導致此?


是的,它是把所有的控件之間共享的組名...感謝阿蘭

回答

2

我收到了你的代碼,把它放在一個新的項目,並在主窗口中。第一個按鈕上來檢查。

單選按鈕有一些錯誤,第一,如果你點擊他們看到here他們失去了綁定。我已經有了描述組名在表單之間共享的行爲,就像some other people一樣。我如何解決這些問題是分別綁定每個單選按鈕並自己處理選擇邏輯。 (如果選擇一個設定的「組」在其它的結合是虛假的屬性)

IM希望它被固定在所述下一個版本。但與此同時,我單獨綁定每個單選按鈕並且不使用組名稱。

0

爲什麼在窗體上只檢查一個單選按鈕的原因與GroupName的範圍有關。

當我與單選按鈕的用戶控制的兩個實例和沒有指定的組名試過,的單選按鈕效果的範圍僅限於該用戶控件內的組框。

當在指所有該窗口中的單選按鈕具有相同的組名,幷包含在相同組中的用戶控件中的單選按鈕被指定相同的組名。整個窗口中只能有一個按鈕在同一時間被檢查。

答案是消除來自單選按鈕GroupName屬性,讓組框的自然分組生效。

+0

如果你想把兩個單選按鈕在不同的容器(說的StackPanel),但仍希望他們進行分組(即只能有一個時間被選擇)? – digitguy 2013-06-22 07:50:07