2011-04-06 59 views
0

我想知道是否有任何方法可以訂閱一個事件,告訴我InvokeOperation是否在給定的DomainContext上忙碌。完全像IsLoading(它不會在InvokeOperation上觸發)。目前,我已經有了:DataContext IsLoading InvokeOperation

DomainContext.PropertyChanged += (c1, c2) => 
       { 
        IsBusy = (DomainContext.IsLoading && DomainContext.IsSubmitting); 
       }; 

回答

0

1)您所提供的代碼需要更改的屬性名稱

DomainContext.PropertyChanged += (c1, c2) => 
       { 
        if(c2.PropertyName == "IsLoading" || c2.PropertyName == "IsSubmitting") 
        IsBusy = (DomainContext.IsLoading && DomainContext.IsSubmitting); 
       }; 

2)的檢查DomainContext不會爲調用操作提供標誌。但你總是可以自己設定。

IsBusy = true; 
DomainContext.InvokeMyOperation(c=> 
            { 
             //in callback 
             IsBusy = false; 
            }); 
+0

謝謝,我還沒把支票(c2.PropertyName ==「IsLoading」 || c2.PropertyName ==「IsSubmitting」),因爲我有一個斷點,我希望看到什麼樣的屬性在我的域上下文中被調用。此外,第(2)點是我正在做的事情,但我不想每次都設置IsBusy屬性。我調用某些東西時可能無法將其設置在某處或發生異常時,它仍會將IsBusy設置爲false – 2011-04-06 13:06:08

+0

如果發生異常,回調將仍然被調用,您可以取消忙標誌。爲了避免遺忘,你可以將這些代碼包裝到服務類中。 – 2011-04-06 13:12:37

+0

謝謝,我希望有一個更簡單的方法來做到這一點,我不明白爲什麼不調用IsLoading屬性與InvokeOperations – 2011-04-06 13:15:36