LoadedData使用Ria Services中的相关对象累积结果

时间:2010-02-04 17:42:02

标签: silverlight data-binding silverlight-4.0 wcf-ria-services

我正在使用SL4&amp; .Net Ria服务。我的数据模型具有名为DeviceAndStates的0 .. *属性的设备,通过此<riacontrol/>我得到所有设备及其特定类型的DevicesAndStates。

<riaControls:DomainDataSource Name="deviceDomainDataSource" QueryName="getDevicesWithOpenStateQuery" .../>

在客户端,有两个嵌套列表框,显示设备及其DevicesAndStates。

 <ListBox ItemsSource="{Binding ElementName=deviceDomainDataSource, Path=Data}">
      <ListBox x:Name="SubRowListBox" ItemsSource="{Binding DevicesAndStates}">
      </ListBox>
 </ListBox

问题是在服务器端,查询返回所有具有特定类型的DeviceAndStates的设备(仅限特定类型),但在客户端则不返回。在客户端

 private void deviceDomainDataSource_LoadedData(object sender, LoadedDataEventArgs e)
    {

        if (e.HasError)
        {
            System.Windows.MessageBox.Show(e.Error.ToString(), "Load Error", System.Windows.MessageBoxButton.OK);
            e.MarkErrorAsHandled();
        }
        else
        {

        }
    }

在e.Entities中我得到了所有设备的正确但是查看了他的DeviceAndState属性,它包含所有的devicesAndStates(查询的特定类型以及之前查询中获得的所有先前类型)。因此,Device的DeviceAndState的Listbox会将查询结果累加到下一个。

1 个答案:

答案 0 :(得分:0)

您可以通过LoadOperation的AllEntities成员获取新加载的引用实体。使用某些LINQ,您可以将其过滤到仅与相关顶级设备相关的实体。