2016-04-12 15 views
0

コード側から私のページを記入したいと思います。 マイページのXAMLコードはここにある:UWPはコードからUIデータを読み込みません

<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> 

私は、ロードされたイベントのためにこれをしようとするが、のObservableCollectionは、UIを更新しません。 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" }); 
     } 

しかし、私はメインページでm_peopleコレクションを(埋める)、それが動作します。 Page_Loadedはなぜ機能しないのですか?

+0

イベントリスナーをinitializecomponentの後に追加すると、イベントが初期化されたときにページが既にロードされているため、Page_loaded関数が呼び出されない可能性があります。 –

+0

2行を切り替えようとしましたが、 – Tudnor

答えて

0

回答が見つかりました!問題は、私は、この不要な質問して申し訳ありませんprivate ObservableCollection<PeopleViewModel> m_people = new ObservableCollection<PeopleViewModel>();

のために変更しなければならなかったprivate ObservableCollection<PeopleViewModel> m_people { get; set;}

でした!

関連する問題