如何在Xamarin中使用Entry进行文本显示和编辑?

kkih6yb8  于 2023-03-06  发布在  其他
关注(0)|答案(1)|浏览(193)

我有帐户信息页面。当用户点击编辑我想让他们编辑自己的信息。

但我不希望用户前往另一个页面,因为它将是完全相同的页面,但只有可编辑的字段。我可以重用现有的页面进行编辑某种方式?我尝试将字段类型更改为条目,但它只提供输入字段,不显示信息。或者我应该创建新的页面进行编辑吗?
当我使用label时,它会正常显示,就像上面的scrrenshot:

<Label x:Name ="patientPhone"/>

但我不能编辑标签。我必须使用输入?
我尝试使用条目与isenabled假,但它只显示一个数字(出完整的电话号码):

输入代码:

<Entry x:Name ="patientPhone" VerticalOptions="CenterAndExpand"  IsEnabled="false" HorizontalOptions="EndAndExpand"/>
svdrlsy4

svdrlsy41#

是的,您可以使用Entry来实现这一点,并为其设置IsEnabled。对于您的布局,建议您使用Grid来实现这一点。
请参考以下代码:

<StackLayout Orientation="Vertical"> 

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="60"  />
            <RowDefinition Height="60" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="100" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>

        <Label  Text="Address:"  Grid.Column="0" Grid.Row="0" VerticalOptions="Center"  />

        <Entry x:Name ="patientAddress"  Text="address 1" Grid.Column="1" Grid.Row="0" BackgroundColor="Yellow"   IsEnabled="false" />

        <Label  Text="Phone:" Grid.Row="1" Grid.Column="0" VerticalOptions="Center" />

        <Entry x:Name ="patientPhone" Text="address 2"  Grid.Row="1" Grid.Column="1"    BackgroundColor="Yellow"  IsEnabled="false" />
    </Grid>

    <Button Text="Edit" Clicked="Button_Clicked"/>

</StackLayout>
    • 主页. xaml. cs**
public partial class MainPage : ContentPage 
    {
        public MainPage()
        {
            InitializeComponent();
        }

        private void Button_Clicked(object sender, EventArgs e)
        {
            patientAddress.IsEnabled = true;

            patientPhone.IsEnabled = true;  
        }
    }

相关问题