我有一个ria DDS查询,其参数绑定到我的silverlight页面后面的代码的依赖项属性。问题是,一旦项目依赖项发生变化,我就会收到以下错误。
当CanLoad为false时,无法更改QueryParameters。更改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);
}
}
答案 0 :(得分:1)
经过一番研究后,我现在非常确定您的上下文中必须有待更改。在这种情况下,DomainDataSources“阻止”,你不能为它们加载。
如果在不同的情况下发生此错误,我将非常有兴趣对此进行更正。
如果您有待处理的更改,则您的解决方案是
答案 1 :(得分:0)
这是否可以在更改参数之前添加提交? 像这样
set
{
if (xyzDomainDataSource.HasChanges)
xyzDomainDataSource.SubmitChanges();
SetValue(projectIDDP, value);
}