using System.Collections.ObjectModel; using Microsoft.Phone.Controls; using PhoneApp.NavigateToView.Core.Navigation; using PhoneApp.NavigateToView.Core.Views; using PhoneApp.NavigateToView.Models; using PhoneApp.NavigateToView.Models.NavigationParameters.Products; namespace PhoneApp.NavigateToView.Views.Products { [ViewInfos("/Views/Products/ProductListView.xaml")] public partial class ProductListView : PhoneApplicationPage, IView { private ObservableCollection<Product> products; public ProductListView() { InitializeComponent(); this.LoadProducts(); } protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); this.DataContext = this.products; } private void ProductsListBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { if (ProductListBox.SelectedIndex == -1) return; this.NavigationService.NavigateToView<ProductEditView, EditProductParameters>(new EditProductParameters { Mode = EditProductMode.Edit, Product = ProductListBox.SelectedItem as Product }); ProductListBox.SelectedIndex = -1; } private void ApplicationBarIconButton_Click(object sender, System.EventArgs e) { this.NavigationService.NavigateToView<ProductEditView, EditProductParameters>(new EditProductParameters { Mode = EditProductMode.Create }); } private void LoadProducts() { this.products = new ObservableCollection<Product>(); for (int i = 1; i < 51; i++) { products.Add(new Product { Id = i, Name = "Product " + i, Description = "Product description " + i }); } } } }