如何知道该属性已从View更改

时间:2011-07-24 12:10:29

标签: silverlight mvvm

我的silverlight项目使用MVVM。对于examlpe,我有文本框,绑定到ViewModel属性。文本框内容可以从View或ViewModel更改。从View查看内容时我需要知道。我如何实现相应的MVVM?

2 个答案:

答案 0 :(得分:0)

如果你的viewmodel实现了INotifyPropertyChanged / INotifyPropertyChanging,那么你可以挂钩它。这对我有用。

答案 1 :(得分:0)

如果您使用bindings,则会在您的setter中获取相关信息。 这是一个小例子: XAML:

<TextBox Text="{Binding MyProperty, Mode=TwoWay}" />

ViewModel的C#:

private string myProperty = "Test";

        public String MyProperty
        {
            get { return myProperty; }
            set
            {
                Debug.WriteLine("Property set");
                myProperty = value;
                NotifyPropertyChanged("MyProperty");
            }
        }

每次更改文本,TextBox失去焦点,调用setter。 如果您想在每次按键时调用设置器,请查看here。这对于触发绑定来说是一个快速而又脏的解决方案;)更好的方法是为此编写一个行为。

希望这有帮助!

BR,

TJ