Это старый вопрос, но у меня была похожая проблема, и я обнаружил, что CanLoad был ложным.Изучив это с помощью Reflector, я обнаружил, что это устанавливается только в том случае, если контекст домена изменяется или в настоящий момент сохраняется или загружается (что было в моем случае).
Из класса DomainDataSource
private void UpdateCanLoadProperty()
{
this.CanLoad = !this.IsSubmittingChanges && !this.HasChanges;
if (this.HasChanges && this.IsLoadingData)
{
this.CancelLoadPrivate();
}
}
И в методе загрузки вы можете увидеть, как выдается полученная ошибка:
public void Load()
{
if (!DesignerProperties.IsInDesignTool)
{
if (this.DomainContext == null)
{
throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, DomainDataSourceResources.OperationNeedsPropertySet, new object[] { "DomainContext", DomainDataSourceResources.LoadOperation }));
}
if (string.IsNullOrEmpty(this.QueryName))
{
throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, DomainDataSourceResources.OperationNeedsPropertySet, new object[] { "QueryName", DomainDataSourceResources.LoadOperation }));
}
if (this._loadDeferLevel > 0)
{
throw new InvalidOperationException(DomainDataSourceResources.LoadWithinDeferLoad);
}
this.ValidateQueryParameters();
if (this._preparingOperation)
{
throw new InvalidOperationException(DomainDataSourceResources.InvalidOperationDuringLoadOrSubmit);
}
if (!this.CanLoad)
{
throw new InvalidOperationException(DomainDataSourceResources.CannotLoadWhenCanLoadIsFalse);
}
this.ExecuteLoad(this.InitialLoadType);
}
}
Чтобы устранить эту ошибку, вам необходимо отправить свои изменения (или отклонить их, в зависимости от того, что правильно).Если вы отправляете свои изменения с помощью метода SubmitChanges, вы обнаружите, что он содержит перегрузку, принимающую обратный вызов, из которого вы хотите вызвать метод Load.По сути, вы не можете вызвать load, когда есть изменения.