C# 在Xamarin表单中单击提交按钮后,如何从XAML获取值?
我想在单击事件后从条目输入中检索一个值。我怎样才能找回它。以下是我的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
<?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;
}