Добавить новый объект в источник данных домена
Это сводит меня с ума. Я работаю в бизнес-приложении Silverlight 5 и использую службы WCF Ria (источник данных домена). В простом ChildControl я загружаю определенный (см. Код ниже) источник данных домена "ddsTerminKonfiguration". Метод запроса возвращает общий список IQueryable
У кого-нибудь есть идея или решение моей проблемы?
Источник данных моего домена...
<riaControls:DomainDataSource Name="ddsTerminKonfiguration"
Width="0"
Height="0"
AutoLoad="False"
d:DesignData="{d:DesignInstance my1:TerminKonfiguration, CreateList=true}"
LoadedData="ddsTerminKonfiguration_LoadedData"
SubmittedChanges="ddsTerminKonfiguration_SubmittedChanges"
QueryName="GetTerminKonfigurationQuery">
<riaControls:DomainDataSource.DomainContext>
<my:RRPDomainContext />
</riaControls:DomainDataSource.DomainContext>
<riaControls:DomainDataSource.QueryParameters>
<riaControls:Parameter ParameterName="param01" />
<riaControls:Parameter ParameterName="param02" />
<riaControls:Parameter ParameterName="param03" />
<riaControls:Parameter ParameterName="param04" />
</riaControls:DomainDataSource.QueryParameters>
</riaControls:DomainDataSource>
Пространство имен "my" ссылается на "Project".Web.Services и "my1" на "Project".Web.Models.
Метод запроса...
public IQueryable<TerminKonfiguration> GetTerminKonfiguration(string param01, string param02, int param03, int param04) {
return this.ObjectContext.TerminKonfiguration.Where(d => (d.MandantenNr == param01) && (d.WorkflowNr == param02) && (d.WfAufgabeId == param03) && (d.WfAufgabeIdGlobal == param04));
}
Фрагмент, где я пытаюсь добавить новый объект в DataView ...
if (this.ddsTerminKonfiguration.DataView.Count == 0) {
TerminKonfiguration tmpConfig = new TerminKonfiguration();
/*
define the new object
*/
this.ddsTerminKonfiguration.DataView.Add(tmpConfig); // problematic line
}
this.ddsTerminKonfiguration.SubmitChanges();
1 ответ
DataView это DataView, это причина. DataView - это представление данных.
С источником данных вы можете фильтровать порядок и т. Д., Затем вы увидите влияние на DataView.
this.ddsTerminKonfiguration.DataView.Add is not a valid operation.
http://msdn.microsoft.com/en-us/library/ee707363(v=vs.91).aspx
Основное использование
<Grid x:Name="LayoutRoot" Background="White">
<riaControls:DomainDataSource x:Name="source" QueryName="GetProductsByColor" AutoLoad="true">
<riaControls:DomainDataSource.DomainContext>
<domain:ProductDomainContext />
</riaControls:DomainDataSource.DomainContext>
<riaControls:DomainDataSource.QueryParameters>
<riaData:Parameter ParameterName="color" Value="Black" />
</riaControls:DomainDataSource.QueryParameters>
</riaControls:DomainDataSource>
<data:DataGrid ItemsSource="{Binding Data, ElementName=source}" />
</Grid>
Как вы заметили, DataGrid привязан к Data а не DataView.
{Binding Data, ElementName=source}"