Chia sẻ biến giữa App.xaml.cs và MainPage.xaml.cs trong UWP
Cập nhật lần cuối: 2018-11-25
Lượt xem: 8800
Chuyên mục: UWP
Bước 1: Khai báo biến tĩnh trong lớp App
tại tệp App.xaml.cs
Để tạo một biến có thể truy cập từ mọi nơi trong ứng dụng, bạn có thể sử dụng thuộc tính static
. Trong ví dụ dưới đây, chúng ta sẽ khai báo một biến counter
kiểu int
và gán giá trị khởi tạo là 10
:
|
|
Bước 2: Truy cập biến counter
từ MainPage.xaml.cs
Trong lớp MainPage
, bạn có thể dễ dàng đọc giá trị của biến tĩnh thông qua tên lớp App
:
|
|
Giải thích hoạt động
- Biến tĩnh (
static
): Khi khai báo một biến với từ khóastatic
, biến này sẽ thuộc về lớpApp
thay vì từng đối tượng cụ thể. Do đó, bạn có thể truy cập nó mà không cần tạo thể hiện của lớp. - Độ bền của biến: Biến
counter
sẽ tồn tại suốt vòng đời ứng dụng, trừ khi ứng dụng bị đóng hoàn toàn. Điều này giúp dữ liệu được chia sẻ giữa các trang hoặc thành phần khác nhau.
Lưu ý quan trọng
- Tránh rò rỉ bộ nhớ: Sử dụng biến tĩnh có thể dẫn đến việc giữ tham chiếu đến các đối tượng không còn cần thiết. Hãy kiểm soát cẩn thận quy trình hủy hoặc giải phóng tài nguyên.
- An toàn đa luồng: Nếu ứng dụng của bạn sử dụng đa luồng, cần đồng bộ hóa việc truy cập biến tĩnh để tránh xung đột dữ liệu.
- Giải pháp thay thế: Ngoài biến tĩnh, bạn có thể sử dụng các phương pháp như:
- Singleton Pattern: Tạo một lớp duy nhất quản lý trạng thái chung.
- Application.Properties: Lưu trữ dữ liệu tạm thời trong từ điển
Application.Current.Properties
.
Ví dụ mở rộng
Giả sử bạn muốn cập nhật giá trị counter
từ một trang khác (ví dụ: SecondPage.xaml.cs
):
|
|
Phương pháp này cực kỳ hữu ích khi bạn cần duy trì trạng thái ứng dụng hoặc chia sẻ dữ liệu đơn giản giữa các lớp mà không cần xây dựng cơ chế phức tạp.