Page Stack in Windows Phone
I.Introduction
Cơ chế Navigate trong Windows Phone cho phép chúng ta chuyển qua lại giữa các Page, tuy nhiên việc chuyển qua lại giữa các Page nếu quản lý không tốt thì sẽ dể dẫn đến trường hợp lỗi ứng dụng. Bởi vì khi Navigate giữa các page chúng đã được lưu lại trong Page Stack do đó nếu ko khéo sẽ dẫn đến trường hợp Navigate lập vô tận khi dùng phím Back.
Trong bài này mình xin chia sẻ cách hiểu về Page Stack trong Windows Phone
II. Fundamental
Page Stack là cơ chế lưu trữ Page của Windows Phone ở dạng Stack có nghĩa là nó sẽ tuân theo cơ chế Stack là “vào trước ra sau”. Do đó khi chúng ta nhấn vào Phím back thì mặc định Page Stack sẽ lấy Page ở đỉnh Stack để Go Back.
Xét ví dụ sau :
Khi Navigate từ Page 1 sang Page 2 thì Page Stack sẽ lưu trữ như sau :
![]()
và Tiếp tục Navigate từ Page 2 đến Page 3 :
![]()
Và khi chúng ta chọn vào phím Back thì Page Stack sẽ lấy Page 3 để Go Back. Lúc này Page Stack chỉ còn chứa Page 2 và Page 1
![]()
Và khi Chúng Ta Back 1 lần nữa thì hệ thống lại lấy Page 2 để Go Back:
![]()
Và cứ như thế cho đến khi không còn Page nào trong Page Stack thì ứng dụng sẽ thoát.
Chúng ta có thể truy suất vào Page Stack thông qua thuộc tính BackStack của NavigationService.
![]()
Tuy nhiên Microsoft chỉ cho chúng ta đọc PageStack chứ không cho phép Get chứ ko cho phép Set. Và có thể xóa 1 phần tử ở đỉnh Page Stack thông qua phương thức RemoveBackEntry().
Để đọc Uri của Page Stack chúng ta chỉ cần dùng vòng lập duyệt qua từng phần tử :
![]()
Hy vọng bài viết sẽ mang đến thông tin hữu ích cho các bạn.