我尝试使用 InvokeOperation 从 ViewModel 中的 DomainContext 获取布尔值。
由于对服务器的调用是异步的,包括调用。我需要等待调用完成(即 ctx.epidemicContext().Completed += [an event handler])。在调用完成事件中,我正在检索布尔值并设置属性。
_context.IsChangeLogStarted(OnInvokeCompleted, null);
//OnInvoke 完成设置属性
private void OnInvokeCompleted(InvokeOperation<bool> invOp)
{
IsChangeLogExist = invOp.Value;
}
//财产
public bool IsChangeLogExist
{
get { return this._IsChangeLogExist; }
set { this._IsChangeLogExist = value; }
}
在我看来,我正在尝试将“IsChangeLogExist”绑定到按钮的 IsEnabled 属性。//看法
<Button IsEnabled="{Binding IsChangeLogExist}" Command="{Binding Source={StaticResource ProxyViewModel}, Path=StartChangeLogCommand}" CommandParameter="{Binding}" />
但问题是当我运行应用程序时,Button 的 IsEnabled 属性与 IsChangeLogExist 的默认值 (false) 绑定,由于 Invoke 的异步操作,没有从 domaincontext 设置其属性值。在调用回调调用 OnInvokeCompleted 之前,按钮的 Isenabled 属性已经在获取值。值总是假的(因为我们没有设置值并且调用仍然在服务器上)
有人可以建议我在从服务器获取 bool 值并将其设置为 OnInvokeCompleted 方法后如何绑定按钮的 IsEnabled 属性。