C# Windows Phone 8.1上的单选按钮绑定
我在绑定我的C# Windows Phone 8.1上的单选按钮绑定,c#,xaml,mvvm,radio-button,windows-phone-8.1,C#,Xaml,Mvvm,Radio Button,Windows Phone 8.1,我在绑定我的RadioButton属性IsChecked时遇到一些问题。我在网格上有两个单选按钮,它们可见性绑定到我的viewmodel上的一个属性。我想要实现的是,当网格变得可见时,总是将firstRadioButton设置为选中状态。 下面是一些代码: <Grid Visibility="{Binding State, Converter={StaticResource VisibilityConverter}}"> <Grid.RowDef
RadioButton
属性IsChecked
时遇到一些问题。我在网格上有两个单选按钮
,它们可见性
绑定到我的viewmodel上的一个属性。我想要实现的是,当网格变得可见时,总是将firstRadioButton
设置为选中状态。
下面是一些代码:
<Grid Visibility="{Binding State, Converter={StaticResource VisibilityConverter}}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<RadioButton Grid.Row="0"
Margin="20,0"
IsChecked="{Binding State, Converter={StaticResource StateToBooleanConverter}}"
Content="content 1" />
<RadioButton Grid.Row="1"
Margin="20,0"
Content="content 2" />
</Grid>
假设PageState是一个枚举 要组合在一起的所有单选按钮都绑定到ViewModel的相同属性,并且都使用相同的ValueConverter。触发单选按钮选中/取消选中的值被传递到ValueConverter的
参数
属性中
对于您的特定问题,可以将EnumBooleanConverter
直接复制粘贴到您的代码中(请务必仔细阅读并确保您理解它)
然后,XAML变为
<Grid Visibility="{Binding State, Converter={StaticResource VisibilityConverter}}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<RadioButton Grid.Row="0"
Margin="20,0"
IsChecked="{Binding State, Converter={StaticResource EnumBooleanConverter}, ConverterParameter=RadioButtonVisible}"
Content="content 1" />
<RadioButton Grid.Row="1"
Margin="20,0"
IsChecked="{Binding State, Converter={StaticResource EnumBooleanConverter}, ConverterParameter=*Insert enum value here*}"
Content="content 2" />
</Grid>
请包含您的cs代码。状态是否实现了INotifyPropertyChanged
?@mike eason是的,确实如此。@lloyd查看我的帖子,我添加了一些代码working base.RaisePropertyChanged()如何实现??非常感谢。你就快到了!虽然没有什么进步,但我得到了我想要的。
<Grid Visibility="{Binding State, Converter={StaticResource VisibilityConverter}}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<RadioButton Grid.Row="0"
Margin="20,0"
IsChecked="{Binding State, Converter={StaticResource EnumBooleanConverter}, ConverterParameter=RadioButtonVisible}"
Content="content 1" />
<RadioButton Grid.Row="1"
Margin="20,0"
IsChecked="{Binding State, Converter={StaticResource EnumBooleanConverter}, ConverterParameter=*Insert enum value here*}"
Content="content 2" />
</Grid>