mvvm light调用RaisePropertyChanged不触发属性getter(windows phone 8.

本文关键字:getter windows phone 属性 调用 light RaisePropertyChanged mvvm | 更新日期: 2023-09-27 18:06:15

在我的应用程序中,我有一个文本框,用户在上面键入一个数字。我想把这个拉丁数字转换成波斯数字作为用户键入它。调用RaisePropertychanged后,MobileNumbergetter未被调用,因此App Ui不更新。我的代码有什么问题?

这是我的代码

View.xaml

<Page
x:Class="CustomName.RegistrationPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ShahrMobileBank.Views.Masters.Registration"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:behaviors="using:Template10.Behaviors"
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:core="using:Microsoft.Xaml.Interactions.Core"
xmlns:converter="using:ShahrMobileBank.Converter"
mc:Ignorable="d"
DataContext="{Binding Path=RegistrationPage, Source={StaticResource ViewModelLocator}}">
    <StackPanel Background="{StaticResource RegistrationPageBackgroundColor}" x:Name="LayoutRoot">
        <StackPanel.Resources>
            <converter:RegistrationConverter x:Key="RegistrationConverter"/>
        </StackPanel.Resources>
        <TextBox Style="{StaticResource GenericTextBoxBeforeLogin}"  x:Uid="PhoneNumber" InputScope="Number" Text="{Binding Path=MobileNumber,  Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" MaxLength="{StaticResource MobileNumberMaxLength}"/>
</StackPanel>
</Page>

ViewModel.cs

public class RegistrationPageViewModel : ViewModelBase
{
    private string _mobileNumber;
    public String MobileNumber
    {
        get
        {
            return _mobileNumber;
        }
        set
        {
            _mobileNumber = LangUtil.ConvertEnNumberToFaNumber(value); // this converts the number from Latin to Persian
            RaisePropertyChanged(() => MobileNumber);
        }
    }
}

mvvm light调用RaisePropertyChanged不触发属性getter(windows phone 8.

尝试将RaisePropertyChanged行更改为RaisePropertyChanged("MobileNumber");

如果您使用mvvm - light代码片段(如果安装了,您可以开始输入mvvm,智能感知将弹出),您可以查看mvvmpinpc,它是PropertyChanged代码片段之一。您可以通过不同的模板字段Tab来将其设置为您想要的内容,并可能揭示一些提示和技巧,使您的编码生活更轻松。