Cache Trang để truyền dữ liệu trong Windows store application


Khi ta tạo một Ứng dụng Windows Store, nó có thể chứa nhiều trang để điều hướng từ trang này sang trang khác trong ứng dụng. Trong ứng dụng Windows store, bạn cũng có thể truyền giá trị thông qua các trang khác nhau trên một trang web. Nhưng trong quá trình điều hướng giữa các trang khác nhau trong một ứng dụng, bạn có thể nhận thấy rằng khi bạn điều hướng từ trang này sang trang khác, khi bạn quay lại trang trước đó tất cả các trường trong trang đã bị mất.

Để giải quyết vấn đề này chúng ta phải cache nội dung của trang, để giữ dữ liệu của trang trong quá trình chuyển hướng giữa các trang trong một ứng dụng.

Bạn có thể cache trang bằng cách chỉ định thuộc tính NavigationCacheMode của nó trong hàm tạo của trang, và đặt NavigationCacheMode của nó thành Enabled. Thao tác này sẽ lưu trữ thông tin của trang khi lưu các trang trong Ứng dụng Windows Store Application. 

Các bước thực hiện:
Bước 1 Để tạo một Ứng dụng Windows mới:

  • Mở Visual Studio 2012.
  • Chọn File> New Project. Hộp thoại New Project mở ra.
  • Chọn kiểu mẫu Windows Store Application.
  • Chọn blank app.
  • Nhập tên cho dự án. Trong chủ đề này, chúng ta sẽ gọi dự án là Chachedpage.
  • Nhấp OK. Các tệp dự án của bạn được tạo ra.
private void click(object sender, RoutedEventArgs e)
{
this.Frame.Navigate(typeof(BlankPage2));
}
private void bindData_Click(object sender, RoutedEventArgs e)
{
this.Frame.Navigate(typeof(BlankPage1));
}
Bây giờ, chúng ta phải thay đổi phương thức OnLaunched trong tệp app.xaml.cs để làm cho BlankPage1 xuất hiện khi ứng dụng bắt đầu:
x



Bước 2, thêm trang mới

Mã XAML của Page 1 (chuyển hướng đến trang 2)



Code của page 2 xaml
Tạo sự kiện click để chuyển hướng
Sự kiện quay lại trang 1 từ trang 2
Để cache trang, ta dùng đoạn code sau trong constructor (hàm tạo) của BlankPage1
public BlankPage1()
 {
      this.InitializeComponent();
      this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;   
 }
Sau đó đổi hàm Onlaunched trong file app.xaml.cs
protected override void OnLaunched(LaunchActivatedEventArgs args)
{
    // Create a Frame to act navigation context and navigate to the first page
    var rootFrame = new Frame();
    rootFrame.Navigate(typeof(blankpage1));

    // Place the frame in the current window and ensure that it is active
    Window.Current.Content = rootFrame;
    Window.Current.Activate();

}

Giờ thì chạy ứng dụng và xem kết quả !
Theo c-sharpcorner

0 Comments:

Đăng nhận xét