Lab 06. Liên kết dữ liệu

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

LAB 6.

KỸ THUẬT LIÊN KẾT DỮ LIỆU

Mục tiêu

- Tạo được các property cho lớp

- Liên kết được giá trị của phần tử giao diện với property của lớp

Bài 1

Chuyển đổi các field của lớp UserInformation sang property. Có giới hạn tuổi
phải lớn hơn hoặc bằng 18 và ID phải nằm trong khoảng 1000 đến 9999. Viết method
public override string ToString() để hợp các property thành một chuỗi ký tự duy nhất.

public class UserInformation


{
public string userName;
public uint userAge;
public uint userID;

public UserInformation(string name, uint age, uint id)


{
userName = name;
userAge = age;
userID = id;
}
public void PrintUserInformation()
{
Console.WriteLine("Your name is {0}.", userName);
Console.WriteLine("Your age is {0}.", userAge);
Console.WriteLine("Your ID is {0}.", userID);
}
}

Hướng dẫn

• Xóa method PrintUserInformation().


• Thay đổi toàn bộ quyền truy cập các field sang private.
• Khai báo public property UserName để quản lý field userName.
• Khai báo property public UserAge để quản lý field userAge, nếu tuổi người
dùng nhỏ hơn hoặc bằng 18 thì thông báo: “Error! User’s age must be
larger than 18”.

1
• Khai báo property public UserID để quản lý field userID, ID phải nằm trong
khoảng từ 1000 -> 9999 nếu không thì thông báo: “Error! ID must be
between 1000 and 9999”.
• Viết constructor: public UserInformation(string name, uint age,
uint id) để khởi tạo các properties trên.

Viết method public override string ToString() để hợp các property thành
một chuỗi duy nhất theo cú pháp sau:

“Username: …, user ID: …., user age: ….”

Bài 2

Chuyển đổi phương thức ToString ở bài 1 sang property


OneLineInformation chỉ đọc. Property này sẽ trả về thông tin của người dùng. Ví
dụ:

“Username: …, user ID: …., user age: ….”

Hướng dẫn

Property có cấu trúc sau

public string OneLineInformation


{
get
{
return $"...";
}
}

Bài 3

Tạo ứng dụng UWP có giao diện như sau

2
Code XAML:
<Grid>
<StackPanel Orientation="Vertical" HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBox x:Name="useNameTextBox" PlaceholderText="Nhập Username"
Width="200" Margin="0, 0, 0, 10"/>
<TextBox x:Name="userIDTextBox" PlaceholderText="Nhập User ID"
Width="200" Margin="0, 0, 0, 10"/>
<TextBlock x:Name="sliderValueTextBlock" Text="18"
HorizontalAlignment="Center"/>
<Slider x:Name="userAgeSlider" Minimum="0" Maximum="100" Value="18" />
<Button x:Name="createButton" Content="Create" Margin="0, 0, 0, 10"
Width="200"/>
<TextBlock x:Name="inforTextBlock" Text="User Information"
HorizontalAlignment="Center" Margin="0, 0, 0, 10"/>
</StackPanel>
</Grid>

a. Thực hiện liên kết dữ liệu giữa slider tuổi và TextBlock để hiển thị tuổi
b. Thực hiện liên kết dữ liệu giữa property OneLineInformation và TextBlock
User Information

Hướng dẫn

a. Thay đổi thuộc tính Text của sliderValueTextBlock sang nội dung sau
Text="{Binding ElementName=userAgeSlider, Path=Value, Mode=OneWay}"

b. Tạo các model cần thiết

Tạo 1 class UserInformationViewModel để khởi tạo đối tượng user mặc định trong đó
tạo 1 property chỉ đọc có tên là DefaultUser
public class UserInformationViewModel
{
private UserInformation defaultUser = new UserInformation(name: "ABC", age:
18, id: 1000);//Khởi tạo đối tượng mặc định
public UserInformation DefaultUser //Tạo property DefaultUser
{
get { return this.defaultUser; }

3
}

Trong MainPage, tạo thêm 1 property ViewModel có thể đọc ghi và khởi tạo
property này trong hàm dựng MainPage từ lớp UserInformationViewModel
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
this.ViewModel = new UserInformationViewModel();
}
public UserInformationViewModel ViewModel { get; set; } //Tạo property
}

Thực hiện Bind thuộc tính Text của inforTextBlock trong XAML code
với property OneLineInformation như sau

<TextBlock x:Name="inforTextBlock" Text="{x:Bind


ViewModel.DefaultUser.OneLineInformation }" HorizontalAlignment="Center" Margin="0, 0,
0, 10"/>

Bài 4

Chỉnh sửa lại chương trình để khi nhấn nút Create sẽ cập nhật thông tin lên
Textblock User Information

You might also like