【问题标题】:Navigation Property fields in a datagrid数据网格中的导航属性字段
【发布时间】:2011-12-11 11:17:58
【问题描述】:

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

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

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

<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”时,“作者”导航属性似乎设置为 null。

这是我的域服务中的代码

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

文章提交的元数据

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; }
    }
}

请,请,请帮助。如果您不理解我发布的大量代码,那么只需将我指向解释如何将实体和导航属性实体绑定在一起的参考资料。

另外,如果您发现代码中有任何错误的做法,请告诉我。我没有写任何这些,但我被赋予了让它工作的任务。我是 Silverlight 的新手。

【问题讨论】:

  • 请添加您的实体元数据类。它可以提供帮助。
  • K,完成。我真正想知道的是我是否在我的 xaml 中正确绑定了 authorNameColumn

标签: silverlight binding datagrid ria navigation-properties


【解决方案1】:

... 结果我上面列出的所有内容都是正确的。我的问题是我的 .include("Author) 查询错误!!!!我会将其留作示例,以防其他人遇到此问题。我发现很难找到示例文本。

如果您来这里寻求帮助,请确保您的域服务中有 include("Person")。

【讨论】:

    猜你喜欢
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多