簡體   English   中英

Caliburn.micro:ViewModel中的深層屬性更改INPC捕獲

[英]Caliburn.micro: Deep property change INPC catching in ViewModel

我有一個View,在其中綁定了模型的某些深層屬性(使用Caliburn.Micro的命名約定):

視圖:

   <UserControl x:Class="TOP.SomeView" 
   (...)
    <TextBox x:Name="NewFooModel_Foo" .../>

然后,我需要在ViewModel中捕獲該屬性的INPC的觸發:

模型:

public class FooModel{


        private string _foo;
(...)

        public int Foo {
            get { return _foo; }
            set {
                if (_foo != value) {
                    _foo = value;
                    NotifyOfPropertyChange(() => Foo);
                }
            }
        }
}

從這一點來看,模型的屬性已正確綁定。 因此,我需要將該更改通知CanCanFoo,並且我不知道如何:

視圖模型:

public class SomeViewModel{

(...)

      public FooModel NewFooModel {
            get { return _newFooModel; }
            set {
                if (_newFooModel != value) {
                    _newFooModel = value;
                    NotifyOfPropertyChange(() => Foo);
    //HERE I NEED TO NOTIFY TO CANCREATEFOOMODEL THAT A PROPERTY OF THE MODEL IS CHANGED
                }
            }
        }

   public bool CanCreateFooModel{
      get{
         return NewFooModel.Foo != null;
      }
   }
}

拜托,有人可以幫我嗎? 提前致謝。

當屬性更改時,您可以使用EventAggregator發布消息(對於當前VM,還可以使用NotifyOfPropertyChange)。 每個感興趣的模型都可以訂閱此消息並進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM