2016-11-07 21 views
0

Ich versuche, einfache Bindung zu bekommen, um auf einem Xamarin Listview ohne Glück zu arbeiten. Ich bekomme keine Fehler. Ich bekomme nur einen ListView mit vielleicht 10 oder so leeren Zeilen.Xamarin Listview Binding funktioniert nicht

Hier ist der XAML-Code, den ich verwende.

<ContentView.Content > 
<StackLayout>  
    <ListView x:Name="listView" ItemsSource="{Binding myItems}" > 
    <ListView.ItemTemplate> 
     <DataTemplate> 

     <ViewCell> 
      <StackLayout> 
      <Label Text="{Binding TName}"/> 
      <Label Text ="{Binding Num, StringFormat='${0}'}"/> 
      </StackLayout>       
     </ViewCell> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
    </ListView> 
</StackLayout> 

-Code hinter

public partial class TestView : ContentView 
{ 
    public TestView() 
    { 
     InitializeComponent(); 
     listView.BindingContext = this; 
    } 

    public static ObservableCollection<Test> myItems 
    { 
     get 
     { 
      return new ObservableCollection<Test>(new[] 
      { 
       new Test() { TName = "Item 1", Num = 1 }, 
       new Test() { TName = "Item 2", Num = 2 }, 
       new Test() { TName = "Item 3", Num = 3 }, 
       new Test() { TName = "Item 4", Num = 4 }, 
      }); 
     } 
    } 
} 

public class Test 
{ 
    public string TName { get; set; } 
    public int Num { get; set; } 
} 

Ich fange Xamarin zu glauben, ist nicht mein Freund :(.

+0

thi s.BindingContext = das; – Jason

+0

Danke Jason! Ich musste das hinzufügen und änderte die statische von MyItems entfernt. Wenn Sie es als Antwort angeben, werde ich es richtig markieren. – jbassking10

Antwort

0

ändern, wie folgend, es funktioniert

public ObservableCollection<Test> myItems 
    { 
     get 
     { 
      return new ObservableCollection<Test>(new[] 
      { 
      new Test() { TName = "Item 1", Num = 1 }, 
      new Test() { TName = "Item 2", Num = 2 }, 
      new Test() { TName = "Item 3", Num = 3 }, 
      new Test() { TName = "Item 4", Num = 4 }, 
      } 
      ); 
     } 
    }