是否可以将RadioButton保留为Xamarin 4.6版可扩展控件的标题

问题描述 投票:0回答:1

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

<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代码时,扩展器才能工作。当我在RadioButton中仅添加header时,它不会扩展。我不希望标题中出现标签。相反,当单选按钮处于活动状态时,我希望扩展器能够扩展。我正在使用Xamarin.Forms 4.6 Release RadioButtonExpander。请提出解决方案。预先感谢。

xamarin.forms radio-button expander
1个回答
0
投票

感谢您的时间。这是答案:

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

© www.soinside.com 2019 - 2024. All rights reserved.