Sayfamı kod tarafında doldurmak istiyorum. Sayfam xaml kodu burada:UWP UI verilerini koddan yüklemiyor
<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>
Ben yüklenen olay için bunu yapmak çalışıyorum, ama ObservableCollection UI güncelleme yok. 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" });
}
Ama MainPage() içinde m_people koleksiyonunu doldururken, işe yarıyor. Page_Loaded neden çalışmıyor?
Olay dinleyicisini initializecomponent öğesinden sonra eklediğinizde, olay başlatıldığında sayfa zaten yüklendiği için Page_loaded işlevini çağırmayabilir. –
İki satırı değiştirmeyi denedim, ancak çalışmadı – Tudnor