Поля свойств навигации в сетке данных - PullRequest
1 голос
/ 20 октября 2011

У меня есть проект 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», свойство навигации «Автор», по-видимому, устанавливается равным нулю.

Вот код моей службы домена

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

Пожалуйста, пожалуйста, пожалуйста, помогите.Если вы не понимаете большого беспорядка кода, который я опубликовал, просто укажите мне ссылки, которые объясняют, как связать сущность и сущность свойства навигации вместе в одном месте.

Также, если вы заметили какие-либо действия, которые не соответствуют коду, пожалуйста, дайте мне знать.Я не написал ничего из этого, но мне дали задание заставить его работать.Я новичок в Silverlight.

1 Ответ

1 голос
/ 21 октября 2011

... Оказывается, все, что я перечислил выше, правильно. Моя проблема в том, что у меня .include ("Автор") не на тот запрос !!!!

Если вы пришли сюда за помощью, убедитесь, что вы включили ("Персона") в службу вашего домена.

...