[英]Data Binding with textbox in windows phone 8
我在XAML中有以下代码
<Text Box x:Name="Text_Mobile_Number"
Height="70" Width="450"
Margin="24,250,0,0"
Text="{Binding Path=Mobile_No, Mode=Twoway, UpdateSourceTrigger=Explicit}">
我试图将text_box与属性Mobile_No绑定,该属性在View_Model中定义:
private string _mobile_No;
public string Mobile_No
{
get
{
return _mobile_No;
}
set
{
if(_mobile_No != value)
_mobile_No = value;
RaisePropertyChanged("Mobile_No");
}
}
在C#中,我编写了一个函数,在其中我调用了服务,通过该函数,我将获得移动电话号码,并且我也在viewmodel中编写了该函数。
但是现在当我在按钮的单击事件上调用该函数时,该调用不会转到属性,因此它没有在该属性中设置手机号码。 以下是我的函数调用:
private async void Next_AppBarIconButton_Click(object sender, EventArgs e)
{
LogInViewModel view_Model = new LogInViewModel();
var tuple = (Tuple<bool, string>)await view_Model.Get_Verification_Code();
}
但它不能正常工作,我分配了实际的文本框值Mobile_No=Text_box.text
然后工作正常,函数检索该值
我的实际功能:
public async Task<object> Get_Verification_Code()
{
var flag = false;
string message="";
var result = (Tuple<string, string, string>)await service.Get_Verification_Code(Mobile_No,"sign_in");
}
因此,请为此提出任何解决方案,我不想手动将文本框值设置为属性Mobile_No。
我已经尝试了所有选项,并搜索了与文本框绑定有关的所有代码段,但没有找到我在代码中出现的错误之处,请告诉我任何解决方案。谢谢
您正在通过按钮click方法创建ViewModel的新实例,因此该新实例将没有值。
在视图的末尾添加以下两行代码(MainPage.xaml.cs)
public MainPage()
{
InitializeComponent();
LoginViewModel vm = new LoginViewModel();
this.DataContext = vm;
}
更新此方法如下
private async void Next_AppBarIconButton_Click(object sender, EventArgs e)
{
LogInViewModel view_Model = this.DataContext as LoginViewModel;
//Now you have the instance which binded to your view which contains all the data.
var tuple = (Tuple<bool, string>)await view_Model.Get_Verification_Code();
}
PS:我建议为您的mvvm应用程序使用GalaSoft MVVM Light框架
希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.