立即更新MVVM Light中的属性?

时间:2013-07-11 23:16:41

标签: windows-phone-7 mvvm mvvm-light

我的视图模型中有一个属性

public const string WelcomeTitlePropertyName = "WelcomeTitle";

    private string _welcomeTitle = string.Empty;

    /// <summary>
    /// Gets the WelcomeTitle property.
    /// Changes to that property's value raise the PropertyChanged event. 
    /// </summary>
    public string WelcomeTitle
    {
        get
        {
            return _welcomeTitle;
        }

        set
        {
            RaisePropertyChanging(WelcomeTitlePropertyName);
            _welcomeTitle = value;
            RaisePropertyChanged(WelcomeTitlePropertyName);
        }
    }

它连接到文本框并具有双向绑定。

现在我有一个KeyDown事件,我需要获取“WelcomeTitle”属性的当前长度

  public ICommand AutoComplete
        {
            get
            {
               return new RelayCommand<KeyEventArgs>(e =>
                {
                    var length = WelcomeTitle.Length;
               });
            }
        }

是的,我发现WelcomeTitle属性在用户离开文本框之前不会更新。这对我不起作用,因为我需要知道长度(以及稍后WelcomeTitle中的当前值)和keydown。

我该如何解决这个问题?在代码隐藏中,这没有问题。

1 个答案:

答案 0 :(得分:0)

在WPF中,通过在绑定中设置UpdateSourceTrigger="PropertyChanged"可以轻松实现;遗憾的是,Windows Phone无法实现这一点,因此您需要一种解决方法。 this question中描述了一些选项。