C# DataContext IsLoading调用操作
我想知道是否有任何方法可以订阅一个事件,该事件将告诉我在给定的DomainContext上InvokeOperation是否繁忙。与IsLoading(调用操作时不会触发)完全相同。目前我有:C# DataContext IsLoading调用操作,c#,silverlight,wcf-ria-services,C#,Silverlight,Wcf Ria Services,我想知道是否有任何方法可以订阅一个事件,该事件将告诉我在给定的DomainContext上InvokeOperation是否繁忙。与IsLoading(调用操作时不会触发)完全相同。目前我有: DomainContext.PropertyChanged += (c1, c2) => { IsBusy = (DomainContext.IsLoading && DomainContext.IsSubmit
DomainContext.PropertyChanged += (c1, c2) =>
{
IsBusy = (DomainContext.IsLoading && DomainContext.IsSubmitting);
};
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;
});
谢谢,我还没有进行检查(c2.PropertyName==“IsLoading”| | c2.PropertyName==“IsSubmitting”),因为我有一个断点,我想看看在我的域上下文中调用了哪些属性。另外,第(2)点是我正在做的,但我不想每次调用某个对象时都设置IsBusy属性,因为这样做可能会导致未在某个位置设置它,或者当抛出异常时,它仍会将IsBusy设置回False如果发生异常,则仍会调用回调,并且您可以取消设置busy标志。为了避免遗忘,您可以将此代码包装到服务类中。谢谢,我希望有一种更简单的方法来完成此操作,我不明白为什么不使用InvokeOperations调用IsLoading属性