2016-08-23 92 views
1

這是我的XAML顯示正在檢查的第一個單選按鈕,但是當窗體顯示時,沒有選中任何按鈕。UWP XAML RadioButton IsChecked不工作

當我在窗體上點擊時,單選按鈕的行爲與預期相同。

<StackPanel Margin="20,0" Orientation="Horizontal"> 
    <TextBlock Margin="0,0,10,0" VerticalAlignment="Center" Text="Search with:" /> 
    <RadioButton x:Name="rdoDates" Content="Dates" IsChecked="True" /> 
    <RadioButton x:Name="rdoTags" Content="Tags" IsChecked="False" /> 
    <RadioButton x:Name="rdoBoth" Content="Both" IsChecked="False" /> 
</StackPanel> 

更新 據我瞭解,如果你的單選按鈕是一個包含的元素裏面,就像一個StackPanel或什麼都你不需要一組名和添加器isChecked = True以其中的一個作品,所以我沒有使用組名。一切正常,直到您稍後在具有一個項目IsChecked = True的頁面流中添加第二組單選按鈕。 IsChecked屬性被應用到第二組單選按鈕,第一組未被選中。

一旦我將組名稱應用於每組單選按鈕,每個組都會遵守IsChecked。

+1

你確定你沒有任何代碼可以搞砸嗎?當我用xaml啓動示例應用程序時,我無法重現它 - 第一個按鈕按預期檢查。 – RTDev

+0

請提供更多信息,因爲如果我將這個片段複製/粘貼到一個乾淨的項目中,效果很好。 –

回答

0

我也面臨類似的問題。我不完全知道爲什麼會發生這種情況。但爲了確保每次都檢查單選按鈕,我在後面的代碼的頁面構造器中進行了操作。

1

我在UWP中有同樣的問題,並使用GroupName修復它!我也用x:Bind來調試,但沒有幫助。

<StackPanel Orientation="Vertical"> 
        <RadioButton x:Uid="radioButtonOriginalMap" 
           Tag="OriginalMap" 
           GroupName="Map" 
           IsChecked="{x:Bind Vm.IsRadarOriginalMapChecked, Mode=TwoWay}"/> 
        <RadioButton x:Uid="radioButtonBingMap" 
           GroupName="Map" 
           Tag="BingMap" 
           IsChecked="{x:Bind Vm.IsRadarBingMapChecked, Mode=TwoWay}"/> 
</StackPanel> 
0

遲到了,但什麼幫助我是設置較全獨特x:NameGroupName(!)XAML包括在不同的文件中的所有控件。也許它太嚴格了,但是我在不同的xamls中有兩個控件,裏面有相同的名稱,一旦我修改其中的一個,稍後加載也變成OK。

HTH