数据网格中的导航属性字段

时间:2011-10-20 03:53:19

标签: silverlight binding datagrid ria navigation-properties

我有一个silverlight项目,我需要一个datagrid来显示数据库模型中的数据。为简单起见,请使用以下模型。

数据网格应显示已提交但未获批准的文章。每个“文章提交”都有一个“作者”,可以通过导航属性访问。

我需要一个包含“文章提交”和“作者”表格字段的数据网格。

<sdk:DataGrid AutoGenerateColumns="False"
ItemsSource="{Binding ElementName=articleApplicationDataSource,Path=Data}" 
Name="articleSubmissionDataGrid" 
RowDetailsVisibilityMode="VisibleWhenSelected">
   <sdk:DataGrid.Columns>  
   ...some column template definitions

      <!--THIS LOADS FINE!-->
      <sdk:DataGridTextColumn x:Name="articleTitleColumn"
      Binding="{Binding Path=Title}" Header="Title" />

      <!--THIS DOESN'T-->
      <sdk:DataGridTextColumn x:Name="authorNameColumn"
      Binding="{Binding Path=Author.Name}" Header="Name" />

  </sdk:DataGrid.Columns>
</sdk:DataGrid>

假设我的'作者'实体被加载到'articleSubmissionDataSource'(似乎是)。我的绑定路径= Author.Name是否是通过导航属性访问“作者”实体的正确方法?

顺便说一句: 'articleApplicationDataSource'在xaml中被这样的'riaControl'设置。

<riaControls:DomainDataSource AutoLoad="True" 
d:DesignData="{d:DesignInstance my1:ArticleSubmission, CreateList=true}" Height="0"
LoadedData="roleApplicationDomainDataSource_LoadedData"
name="articleSubmissionDomainDataSource" 
QueryName="GetArticleSubmissionsQuery" Width="0" LoadSize="500">
     <riaControls:DomainDataSource.DomainContext>
               <my:OrganizationContext />
     </riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource>

另外,我注意到我的域服务的GetArticleSubmissions方法返回了“作者”导航属性的有效信息。但是当我检查'LoadedDataEventArgs e'时,'Author'导航属性似乎被设置为null。

以下是我的域名服务中的代码

public IQueryable<RoleApplication> GetRoleApplications()
{
     return this.ObjectContext.ArticleSubmissions.Include("Person");         
}

ArticleSubmission的元数据

internal sealed class ArticleSubmissionMetadata
    {

        // Metadata classes are not meant to be instantiated.
        private ArticleSubmissionMetadata()
        {
        }

         [Include]
        public Author Author { get; set; }

        public DateTime Date { get; set; }

        public int ID { get; set; }

        public int AuthorID { get; set; }

        public string Title { get; set; }
    }
}

拜托,拜托,请帮忙。如果您不了解我发布的大量代码,那么请指向我,以解释如何在一个地方将实体和导航属性实体绑定在一起。

此外,如果您发现任何错误的做法,请告诉我。我没有写任何这个,但我被赋予了让它工作的任务。我是银光的新手。

1 个答案:

答案 0 :(得分:1)

...原来我列出的所有内容都是正确的。我的问题是我在错误的查询中得到了我的.include(“作者”)!我会留下这个例子以防其他人有这个问题。我发现很难找到示例文本。

如果您来这里寻求帮助,请确保您的域名服务中包含(“人员”)。