2016-04-12 3 views
0

Ich möchte meine Seite von Code-Seite füllen. Meine Seite XAML-Code ist hier:UWP laden nicht die UI-Daten von Code

<Hub x:Name="MainPageHub" Grid.Row="1" > 
        <HubSection x:Name="HomeHub" Header="Home" DataContext="{x:Bind m_people, Mode=OneWay}"> 
         <DataTemplate> 
          <GridView x:Name="PeopleGrid" ItemsSource="{Binding Mode=OneWay}"> 
           <GridView.ItemTemplate> 
            <DataTemplate x:DataType="data:PeopleViewModel"> 
             <StackPanel Background="DarkGray" HorizontalAlignment="Left" Margin="6" Orientation="Horizontal"> 
              <Image Width="50" Height="50" Source="{x:Bind PictureUrl, Mode=OneWay}"/> 
              <TextBlock FontSize="15" Text="{x:Bind Happening, Mode=OneWay}"/> 
             </StackPanel> 
            </DataTemplate> 
           </GridView.ItemTemplate> 
           <GridView.ItemsPanel> 
            <ItemsPanelTemplate> 
             <ItemsWrapGrid MaximumRowsOrColumns="2" Orientation="Horizontal"></ItemsWrapGrid> 
            </ItemsPanelTemplate> 
           </GridView.ItemsPanel> 
          </GridView> 
         </DataTemplate> 
        </HubSection> 
        </Hub> 

Ich versuche, dies für das geladene Ereignis zu tun, aber die ObservableCollection nicht aktualisiert die Benutzeroberfläche. MainPage.xaml.cs:

public sealed partial class MainPage : Page 
    { 
     private ObservableCollection<PeopleViewModel> m_people { get; set;} 

     public MainPage() 
     { 
      this.InitializeComponent(); 
      this.Loaded += Page_Loaded; 
     } 

     private void Page_Loaded(object sender, RoutedEventArgs e) 
     { 
      m_people = new ObservableCollection<PeopleViewModel>(); 
      m_people.Add(new PeopleViewModel {Happening = "vaalam", DateTime = DateTime.Now, PictureUrl = "Assets/Data/Picture/1.png"}); 
      m_people.Add(new PeopleViewModel {Happening = "vaalam", DateTime = DateTime.Now, PictureUrl = "Assets/Data/Picture/2.png" }); 
      m_people.Add(new PeopleViewModel {Happening = "vaalam", DateTime = DateTime.Now, PictureUrl = "Assets/Data/Picture/3.png" }); 
     } 

Aber wenn ich die m_people Sammlung in der Mainpage() füllen, es funktioniert. Warum funktioniert das Page_Loaded nicht?

+0

Wenn Sie den Ereignis-Listener nach der initializeComponent hinzufügen, kann die Funktion "Page_loaded" nicht aufgerufen werden, da die Seite bereits beim Initialisieren des Ereignisses geladen wurde –

+0

Ich habe versucht, die zwei Zeilen zu wechseln, aber es hat nicht funktioniert – Tudnor

Antwort

0

Ich fand die Antwort! Das Problem war die private ObservableCollection<PeopleViewModel> m_people { get; set;}

ich für private ObservableCollection<PeopleViewModel> m_people = new ObservableCollection<PeopleViewModel>(); ändern musste

Sorry für diese unerwünschte Frage!