J'ai créé un formulaire de données simple qui lit les informations d'adresse.
Les informations d'adresse sont stockées dans plusieurs tables: Adresse, Ville, Province, Pays. Pour simplifier cette question, je ne me référerai qu'à Adresse et Ville. J'accède aux données via le contexte WCF RIA Services. Ma requête dans le service est:Silverlight 4 toolkit DataForm incluant des éléments vierges lors de la navigation dans la collection
public IQueryable<Address> GetAddresses()
{
return from Ad in ObjectContext.Addresses
.Include("City")
// .Include("City.Province")
// .Include("City.Province.Country")
where Ad.AddressID == 10
select Ad;
}
Pour aider avec mon débogage, j'ai limité le jeu de résultats à une adresse (où Ad.AddressID == 10). Dans le service de métadonnées de la table de ville est inclus:
[Include]
public City City { get; set; }
Mes DataForm de lecture seule modèle ressemble à:
<dataFormToolkit:DataForm.ReadOnlyTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<dataFormToolkit:DataField Label="Street Address" >
<TextBox Text="{Binding Path=StreetAddress, Mode=TwoWay}" />
</dataFormToolkit:DataField>
<dataFormToolkit:DataField Grid.Row="1" Label="City" >
<TextBox Text="{Binding Path=City.CityName, Mode=TwoWay}" />
</dataFormToolkit:DataField>
</Grid>
</DataTemplate>
</dataFormToolkit:DataForm.ReadOnlyTemplate>
Maintenant, quand je debug mon DataForm, je prévois que le disque 1 adresse afficher. Mais il ramène en réalité 2 enregistrements: l'enregistrement d'adresse attendu et l'enregistrement City lié. Le premier enregistrement qui apparaît est l'adresse incluant la ville liée. La deuxième apparaît comme vide, mais en entrant dans le code, CurrentItem du DataForm montre qu'il s'agit de l'enregistrement City lié à la première adresse.
Comment est-ce que je restreindre les éléments dans le DataForm pour afficher et parcourir seulement ceux de la table d'adresses?