2016-09-12 2 views
-1

ich meine Abfrage Wert in Feld zurückgibt, wie,Wie Abfragewert in Array und zeigen, um Texte in SQLite Xamarin Formen zu kennzeichnen?

public IEnumerable<ItemTable> SearchItem(string itemName) 
{ 
    return (from i in 
      _connection.Table<ItemTable>() 
      where i.ItemName.StartsWith(itemName) 
      select i).ToArray();  
} 

Kann mir jemand sagen, wie man dieses Array-Wert erhalten, wenn ich diese Funktion aufrufen, bedeutet, wie dieses Ergebnis zu erhalten, auf dem Etikett Text zu zeigen, auf dem Bildschirm. Bitte Antworten

+0

Welche Werte möchten Sie in einem Etikett anzeigen? Was sind die Felder in ItemTable? –

+0

gibt es Artikel Name und Artikel Preis in der Artikeltabelle. Ich möchte diese auf dem Etikett Text für jede oder andere Schleife für alle Werte zeigen – Karan

+0

Wie sieht Ihr Code für Xamarin Form aus? Im obigen Code haben Sie eine IEnumerable von 'ItemTable'. Ich denke, Sie wissen, wie Sie eine Sammlung von Namen und Preisen erstellen können. –

Antwort

0

Hier ist ein Beispiel;

public IEnumerable<ItemTable> SearchItem(string itemName) 
    { 
     return (from i in 
       _connection.Table<ItemTable>() 
       where i.ItemName.StartsWith(itemName) 
       select i).ToArray(); 
    } 

    private string DisplayItemsInLabel(string itemName) 
    { 
     var searchedItems = this.SearchItem(itemName); // get items using above method that you have written already. 

     // get name and price 
     var displayableItems = searchedItems.Select(i => string.Format("Name :{0}, Price :{1}", i.Name, i.Price)); 

     // create a formatted string using name and the price. so that we can display it in a label. 
     return string.Join(Environment.NewLine, displayableItems); 
    } 


    public LabelPage() 
    { 
     InitializeComponent(); 
     var layout = new StackLayout { Padding = new Thickness(5, 10) }; 
     this.Content = layout; 

     //display contents in a label 
     var label = new Label { Text = DisplayItemsInLabel("MyItem"), TextColor = Color.FromHex("#77d065"), FontSize = 20 }; 
     layout.Children.Add(label); 
    } 
+0

Vielen Dank, ich werde es versuchen :) – Karan

+0

Danke @Kosala funktioniert für mich, aber ich habe einige Änderungen vorgenommen – Karan

+0

var displayableItems = result.Select (i => i.ItemName); foreach (var Element in displayableItems) { arrayStack.Children.Add (neues Label {Text = Element, TextColor = Color.Black}); } – Karan

Verwandte Themen