C# 在Xamarin表单中单击提交按钮后,如何从XAML获取值?

C# 在Xamarin表单中单击提交按钮后,如何从XAML获取值?,c#,xaml,xamarin,xamarin.forms,C#,Xaml,Xamarin,Xamarin.forms,我想在单击事件后从条目输入中检索一个值。我怎样才能找回它。以下是我的XAML代码: <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-na

我想在单击事件后从条目输入中检索一个值。我怎样才能找回它。以下是我的XAML代码:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:HelloWorld"
             x:Class="HelloWorld.MainPage">

    <StackLayout Spacing="10" x:Name="layout">

        <Label Text="Name" VerticalOptions="Start" FontSize="Large"/>

        <Entry x:Name="name" Placeholder="Enter your name"/>


        <Label Text="Password" VerticalOptions="Start" FontSize="Large"/>

        <Entry x:Name="password" IsPassword="True" Placeholder="****"/>

        <Label Text="Date of Birth" VerticalOptions="Start" FontSize="Large"/>
        <DatePicker x:Name="dob"/>

        <Label Text="Gender" VerticalOptions="Start" FontSize="Large"/>

        <Picker x:Name="GenderPicker" HorizontalOptions="FillAndExpand">
            <Picker.Items>
                <x:String>Male</x:String>
                <x:String>Female</x:String>
            </Picker.Items>
        </Picker>

        <Button x:Name="submit" Text="Save" BorderWidth="20" Clicked="submit_Clicked"/>

    </StackLayout>

</ContentPage>

您可以从
Entry.Text
属性中获取值。例如:

private void submit_Clicked(object sender, EventArgs e)
{
     var nameValue = name.Text;
}

下面是你如何做到这一点,你可能需要先投下它

private void submit_Clicked(object sender, EventArgs e)
{
   Entry entry = sender as Entry;
   var text=entry.Text;
}

这个答案完全涵盖了你的问题,但我觉得我应该提到,代码隐藏通常应该用于处理UI内容,而ViewModel应该是处理任何业务内容、处理值、计算、数据层交互的模型,等等。您可能应该研究将命令绑定到该按钮,并将条目的文本属性绑定到ViewModel中的字符串属性是的,我知道这一点。在我们的项目中,我们使用MVVM模式。但是你对视图模型的看法绝对正确,正如你所看到的-sender它是
按钮
这是完全错误的。所讨论的处理程序是按钮单击处理程序。它的sender属性将是单击的按钮。例如,这种类型的强制转换和值检索可以用于条目的TextChanged事件。有趣的是,这个答案有-5票,而Prashant Bamania有+2票,尽管他们的答案几乎相同。
private void submit_Clicked(object sender, EventArgs e)
{
   Entry entry = sender as Entry;
   var text=entry.Text;
}
 private void submit_Clicked(object sender, EventArgs e)
  {
    Entry entry = e as Entry;
     var text=entry.Text;
   }