是否可以将 RadioButton 保留为可扩展控件 Xamarin forms 4.6 的 Header

Is it possible to keep RadioButton as Header of the expandable control Xamarin forms 4.6

我正在尝试制作付款方式页面。我尝试做的功能是 - 单击 radio buttonexpander body 应该显示文本框以添加相应的详细信息。所以我尝试了这段代码:

<Grid Grid.Row="2">
            <StackLayout Orientation="Vertical" >
                <Frame BorderColor="Gray"
                       CornerRadius="5"
                       Padding="8">
                    <StackLayout >
                        <Expander>
                            <Expander.Header>
                                <StackLayout>
                                    <Label Text="COD"/>
                                    <RadioButton GroupName="PaymentMethod" 
                                     Text="{lang:Translate COD}" 
                                     IsChecked="False"/>
                                </StackLayout>
                            </Expander.Header>                                
                        </Expander>
                    </StackLayout>
                </Frame>

                <Frame BorderColor="Gray"
                       CornerRadius="5"
                       Padding="8">
                    <StackLayout>
                        <Expander>
                            <Expander.Header>
                                <StackLayout>
                                    <Label  Text="Card Payment"/>
                                    <RadioButton GroupName="PaymentMethod" 
                                 Text="{lang:Translate Card}" 
                                 IsChecked="False"/>
                                </StackLayout>
                            </Expander.Header>
                            <Expander.Content>
                                <Grid Padding="10">
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="auto"/>
                                        <RowDefinition Height="auto"/>
                                    </Grid.RowDefinitions>
                                    <Grid Grid.Row="0">
                                        <StackLayout Orientation="Horizontal">
                                            <local:XEntry Style="{StaticResource entry}"                                              
                                        Placeholder="Card Number"
                                        PlaceholderColor="LightGray"
                                        MaxLength="100"/>
                                            <!--Text="{Binding CardNumber}"-->
                                            <local:XEntry Style="{StaticResource entry}"
                                        Placeholder="MM"
                                        PlaceholderColor="LightGray"
                                        Text="{Binding Month}"
                                        MaxLength="2"/>
                                            <Label Text="/"/>
                                            <local:XEntry Style="{StaticResource entry}"
                                        Placeholder="YY"
                                        PlaceholderColor="LightGray"
                                        MaxLength="2"/>
                                            <!--Text="{Binding Year}"-->
                                            <local:XEntry Style="{StaticResource entry}"
                                        Placeholder="CVV"  
                                        PlaceholderColor="LightGray"
                                        MaxLength="3"/>
                                            <!--Text="{Binding CVV}"-->
                                        </StackLayout>
                                    </Grid>
                                    <Grid Grid.Row="1">
                                        <StackLayout>
                                            <local:XEntry Style="{StaticResource entry}"                                               
                                        Placeholder="Card Holder Name"
                                        PlaceholderColor="LightGray"
                                        MaxLength="100"/>
                                            <!--Text="{Binding CardHolderName}"-->
                                        </StackLayout>
                                    </Grid>
                                </Grid>
                            </Expander.Content>
                        </Expander>
                    </StackLayout>
                </Frame>
                <Frame BorderColor="Gray"
                       CornerRadius="5"
                       Padding="8">
                    <StackLayout>
                        <Expander>
                            <Expander.Header>
                                <StackLayout>
                                    <Label Text="Net Banking"/>
                                    <RadioButton GroupName="PaymentMethod" 
                                 Text="{lang:Translate Card}" 
                                 IsChecked="False" />
                                    <!--{Binding NetBank}-->
                                </StackLayout>
                            </Expander.Header>
                            <Expander.Content>
                                <StackLayout>                                        
                                    <Label  Text="Net Banking"/>
                                </StackLayout>
                            </Expander.Content>
                        </Expander>
                    </StackLayout>
                </Frame>
            </StackLayout>                                                 
        </Grid>

仅当 header 包含我在上面粘贴的 Lable 代码时,Expander 才会工作。当我只在 header 中添加 RadioButton 时,它不会扩展。我不想要 header 中的标签。相反,我希望扩展器在单选按钮处于活动状态时展开。我正在使用 Xamarin.Forms 4.6 版本 RadioButtonExpander 。请提出解决方案。提前致谢。

感谢您的宝贵时间。答案如下:

<Expander x:Name="MyExpander"> <Expander.Header> <StackLayout> <RadioButton HorizontalOptions="StartAndExpand" WidthRequest="200" GroupName="PaymentMethod" Text="Credit/Debit Card" IsChecked="False" Clicked="RadioButton_Clicked"/> </StackLayout> </Expander.Header> </Expander>

并在 cs 文件中:

private void RadioButton_Clicked(object sender, EventArgs e) { MyExpander.IsExpanded = !MyExpander.IsExpanded; }