【问题标题】:How to know that property was changed from View如何知道该属性已从 View 更改
【发布时间】:2011-07-24 12:10:29
【问题描述】:

我的 silverlight 项目使用 MVVM。例如,我有绑定到 ViewModel 属性的文本框。文本框内容可以从 View 或 ViewModel 更改。我需要知道内容何时从视图更改。我怎样才能相应地实现这个 MVVM?

【问题讨论】:

标签: silverlight mvvm


【解决方案1】:

如果您的视图模型实现了 INotifyPropertyChanged/INotifyPropertyChanging,那么您可以使用它。这对我有用。

【讨论】:

    【解决方案2】:

    如果你使用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 被调用。 如果您想在每次按键时调用 setter,请查看 here。这是触发绑定的一种快速而肮脏的解决方案;)更好的方法是为此编写一个行为。

    希望这会有所帮助!

    BR,

    TJ

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-18
      • 2011-06-25
      相关资源
      最近更新 更多