繁体   English   中英

Windows Phone 8中使用文本框进行数据绑定

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM