Источник данных домена CanLoad имеет значение false при использовании параметра запроса RIA, привязанного к свойству зависимости - PullRequest
1 голос
/ 21 марта 2011

У меня есть запрос RDS DDS, параметр которого привязан к свойству зависимости кода за моей страницей Silverlight.Проблема в том, что после изменения зависимости проекта я получаю следующую ошибку:

Невозможно изменить QueryParameters, если CanLoad имеет значение false.Изменение QueryParameters инициирует операцию загрузки, и операции загрузки не разрешены, когда CanLoad имеет значение false.Элементы управления, которые вызывают операции загрузки, должны быть отключены, когда CanLoad имеет значение false.

Я не знаю, как завершить или отменить загрузку, чтобы я мог изменять представление сведений для проекта при каждом выборе нового проекта.из списка.

<riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my1:XT_PROJECTS, CreateList=true}" Height="0" LoadedData="ProjectDetailsDomainDataSource_LoadedData" Name="ProjectDetailsDomainDataSource" QueryName="getProjectDetails"  Width="0" >
        <riaControls:DomainDataSource.DomainContext>
            <my:MYservices />
        </riaControls:DomainDataSource.DomainContext>
        <riaControls:DomainDataSource.QueryParameters>
            <riaControls:Parameter ParameterName="project" Value="{Binding ElementName=ProjectDetailsPage, Path=project}" />
        </riaControls:DomainDataSource.QueryParameters>
    </riaControls:DomainDataSource>

public static readonly DependencyProperty projectIDDP =
    DependencyProperty.Register("project", typeof(string),typeof(ProjectDetails),
    new PropertyMetadata(""));
 public string projectID
    {
        get
        {
            return (string)GetValue(projectIDDP);
        }
        set
        {
            SetValue(projectIDDP, value);
        }
    }

Ответы [ 2 ]

1 голос
/ 05 февраля 2013

После нескольких дополнительных исследований я теперь почти уверен, что у вас должны быть ожидающие изменения в вашем контексте. В этом случае DomainDataSources «блокирует», и вы не должны вызывать их загрузку.

Если эта ошибка возникает в другом сценарии, мне было бы очень интересно исправить это.

Если у вас есть ожидающие изменения, ваше решение будет либо

  1. для блокировки ввода пользователя (предположительно, конечная причина вашей нагрузки), например, путем отключения формы или
  2. для использования другого контекста для отправки и DomainDataSource (затем вы захотите использовать RiaServicesContrib для копирования объектов между контекстами).
0 голосов
/ 19 апреля 2011

Работает ли добавление отправки перед изменением параметра? как это

set
{ 
    if (xyzDomainDataSource.HasChanges)
        xyzDomainDataSource.SubmitChanges();
    SetValue(projectIDDP, value);        
}
...