Khi Trang được điều hướng sang màu bạc, bạn có thể ghi đè phương thức này.Cách phát hiện nút quay lại hoặc điều hướng nút chuyển tiếp trong ứng dụng điều hướng Silverlight
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
}
Các NavigationEventArgs
có liệt kê NavigationMode
được định nghĩa là
public enum NavigationMode
{
New = 0,
Back = 1,
Forward = 2,
Refresh = 3,
}
Nhưng gọi e.NavigationMode
luôn ném một NotImplementedException
Có cách nào trong Silverlight để phát hiện một trang đang được chuyển đến vì người dùng nhấn nút chuyển tiếp/quay lại trình duyệt.
Điều tôi đang cố gắng đạt được là một số loại trạng thái có thể được giữ nguyên khi người dùng nhấn nút quay lại.
Ví dụ giả sử bạn có trang khách hàng đang hiển thị danh sách khách hàng trong biểu đồ dữ liệu. Người dùng có thể chọn một khách hàng và có một cái nhìn chi tiết trong đó cho thấy tất cả các đơn đặt hàng cho khách hàng đó. Bây giờ trong một mục đơn hàng, bạn có thể nhấp vào liên kết siêu liên kết đưa bạn đến lịch sử giao hàng của đơn đặt hàng là một trang riêng biệt. Khi người dùng nhấn nút quay lại, tôi muốn quay lại trang khách hàng và tự động chọn khách hàng mà anh ấy đang xem. Cái này nó có hoàn toàn có thể xảy ra được không ?
Tôi cũng đã cố gắng ra tính năng đoạn chuyển hướng
NavigationService.Navigate(new Uri("#currentcustomerid="
+ customer.Id.ToString(), UriKind.Relative));
khi những thay đổi lựa chọn của khách hàng nhưng điều này cho biết thêm quá nhiều mục vào lịch sử khi người dùng nhấp khách hàng khác nhau trên trang của khách hàng.
EDIT
Ngoài ra còn có một phương pháp mà bạn có thể ghi đè
protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
}
mà là giống như xử lý sự kiện NavigationService.Navigating như được chỉ ra bởi câu trả lời của BugFinder. Trong phương pháp này, e.NavigationMode
luôn trả về New
khi bạn nhấn nút Quay lại hoặc Chuyển tiếp. Thời gian duy nhất phương pháp này trả về Back
là khi bạn rõ ràng gọi NavigationService.GoBack()
Ngay cả khi bạn nhấn nút Quay lại hoặc Chuyển tiếp. ** NavigationMode ** luôn luôn là 'NavigationMode.New' trong phương thức này. –