2011-07-15 2 views
0

Je fais maintenant une application silverlight, le langage est C# et je l'ai réussi à récupérer les données de référence de service Web et est capable d'afficher sur la MainPage.xaml en vue de la grille . Cependant, y a-t-il un moyen pour moi de stocker mes données en tant que array/arraylist afin qu'au lieu d'afficher toutes les données de colonne dans la vue de la grille, je veux seulement afficher une seule colonne de données. Des experts qui peuvent m'aider à ce sujet? Ci-dessous est mon code de base actuelStockage de données extraites de la référence de service Web sous forme de tableau/ArrayList

[OperationContract] 
    public List<location> Getlocations() 
    { 
    DataClassesDBDataContext db = new DataClassesDBDataContext(); 

    var mlocations = from location in db.locations 
         select location; 
    return mlocations.ToList(); 
    } 

Répondre

1

Si vous utilisez le service wcf, vous avez la possibilité de changer le type de retour.

Dans Ajouter un service de référence cliquez sur le bouton « Avancé » en bas. Une nouvelle boîte de dialogue modale ouvre "Paramètres de référence du service", vous pouvez sélectionner "Type de collection" comme Arraylist/Array/List.

Maintenant, chaque fois que vous revenez Liste de méthode Web que vous recevrez celui que vous avez sélectionné dans « Type Collection ». (Ceci est uniquement disponible dans le service Web WCF (.svc) et non (.asmx)

Si ce n'est pas une option, alors vous pouvez simplement changer la liste de tableau.

var list = new List<string>{"1","2"} 
string[] arrayVal =" list.ToArray(); 

la question est pas très claire et vous dites que vous voulez uniquement afficher une colonne de la grille, vous pouvez simplement renvoyer des données d'une colonne en revenant des méthodes Web comme

[OperationContract] 
public List<location> Getlocations() 
{ 
    var db = new DataClassesDBDataContext(); 

    var mlocations = (from x in db.locations 
        select new location 
        { 
         locationColName = x.something 
        }).ToList(); 
    return mlocations; 
} 
+0

Salut, oui, je ne voulais afficher une colonne de données et nom de la colonne est « latitude ». Parce que j'ai un convertisseur qui prendrait des valeurs de la base de données, mais je veux seulement qu'il prenne une colonne de valeurs, donc je voulais stocker comme tableau et ensuite être sélectionné dans le convertisseur. Je suis fatigué votre code, mais il me donne cette erreur « erreur 2Cannot convertir implicitement le type « System.Linq.IQueryable » à « System.Collections.Generic.IEnumerable ». Il existe une conversion explicite (vous manque un casting?) " Aucune idée sur la façon de résoudre ça? – epicsoul

+0

et puis-je savoir ce que signifie locationColName = xquelque chose, quelquechose? – epicsoul

+0

quelque chose signifie la colonne de base de données qui proviennent de l'emplacement db.locations.If contient la colonne de latitude et il est alors décimal classe emplacement contiendra la propriété décimale appelée latitude et il devrait fonctionner erreur fine.The que vous obtenez est parce que x. Quelque chose est décimal et locationColName est une chaîne. –

0

La méthode ToArray() utilisée dans la liste devrait faire l'affaire. Un exemple général simple est montré ici:

List<string> l = new List<string>(); 
l.Add("somedata"); 
. . . 
string[] s = l.ToArray(); 
Questions connexes