Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows Phone 8.1上的单选按钮绑定_C#_Xaml_Mvvm_Radio Button_Windows Phone 8.1 - Fatal编程技术网

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上的一个属性。我想要实现的是,当网格变得可见时,总是将first
RadioButton
设置为选中状态。 下面是一些代码:

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