You are on page 1of 136

XÂY DỰNG PHẦN MỀM WINDOWS

GV: Nguyễn Thanh Tùng


Email: tung.nguyenthanh@stu.edu.vn

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
2

NỘI DUNG CHÍNH

Windows Presentation
Foundation (WPF)

Entity Framework Core

ASP.NET Web API

WPF nâng cao

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
3

I. WPF (Windows Presentation Foundation)

Giới thiệu

XAML

Các dạng Panel thông dụng

Các Controls trong WPF

Data Binding

Ví dụ Quản lý môn học

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
4

1. Giới thiệu
 WPF (Windows Presentation Foundation ) là công
nghệ của Microsoft dùng để xây dựng các ứng dụng
trên Desktop.

 Công nghệ WPF là thế hệ kế tiếp của WinForm


dùng lập trình các ứng dụng Windows.

 Lập trình WPF dùng XAML (eXtensible Application


Markup Language) để thiết kế giao diện.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
5

1. Giới thiệu
 WPF sử dụng ngôn ngữ XAML cho phép người lập
trình và người thiết kế giao diện làm việc cùng nhau
một cách dễ dàng.

 Cung cấp một công nghệ chung để xây dựng giao diện
người dùng trên cả Windows và trình duyệt Web.

 Ứng dụng WPF bao gồm giao diện là một tập các
trang XAML và phần code tương ứng được viết bằng
C# hoặc Visual Basic.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
6

2. XAML (eXtensible Application Markup Language)


 XAML là biến thể XML của Microsoft để mô tả GUI.
Microsoft sử dụng XAML giống như với HTML, để có
thể dễ dàng viết và chỉnh sửa GUI của mình.

 Khi tạo Cửa sổ hay Trang, nó sẽ bao gồm tài liệu


XAML và file CodeBehind. File XAML mô tả giao
diện với tất cả các thành phần của nó, trong khi
CodeBehind xử lý tất cả các sự kiện và có quyền truy
cập để thao tác với các điều khiển XAML.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
7

2. XAML (eXtensible Application Markup Language)


 Tạo Control bằng XAML có thể dùng tên của nó đặt
trong hai dấu ngoặc nhọn.

Ví dụ: <button> </button> hoặc <button />

 HTML không phân biệt chữ hoa chữ thường, nhưng


XAML thì có, vì tên Control phải tương ứng với một kiểu
trong Framework .NET.

 Các Controls của XAML có nhiều sự kiện có thể sử


dụng. Các sự kiện này sử dụng tương tự như WinForm.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
8

3. Các dạng Panel thông dụng


 WPF sử dụng các dạng Panel khác nhau để bố trí
các phần tử trên giao diện người dùng.

 Các dạng Panel thông dụng:

1. StackPanel:
Bố trí các phần tử con nằm trong nó bằng cách sắp
xếp chúng theo thứ tự trước sau. Các phần tử sẽ
xuất hiện theo thứ tự mà chúng được khai báo trong
file XAML theo chiều dọc (mặc định) hoặc theo
chiều ngang.
Xây dựng phần mềm Windows
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
9

3. Các dạng Panel thông dụng

2. WrapPanel:
Cho phép sắp xếp các phần tử con của nó từ trái sang
phải. Khi một dòng phần tử đã điền đầy khoảng không
gian cho phép theo chiều ngang, WrapPanel sẽ cuốn
phần tử tiếp theo xuống đầu dòng tiếp theo.

3. Grid:
Cho phép sắp xếp các phần tử con theo dòng và cột.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
10

3. Các dạng Panel thông dụng

4. DockPanel:
Cho phép các phần tử con bám lên các cạnh của nó.
Nếu như có nhiều phần tử cùng bám về một cạnh,
chúng sẽ tuân theo thứ tự mà chúng được khai báo
trong file XAML.

5. Canvas:
Cho phép các phần tử con được sắp xếp theo vị trí
tuyệt đối là tọa độ góc trên bên trái (hay tọa độ góc
dưới bên phải).
Xây dựng phần mềm Windows
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
11

4. Các Controls trong WPF


 TextBlock
<TextBlock Text="Mã hàng:"/>

Thuộc tính Text: chứa nội dung hiển thị lên TextBlock Control.

 Label
<Label Content="Ho ten:"></Label>

Thuộc tính Content: chứa nội dung hiển thị lên Label Control.

 TextBox
<TextBox Name="txtHoten"></TextBox>

Thuộc tính Name: chứa tên của TextBox Control.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
12

4. Các Controls trong WPF

 Button
<Button Name="btnTinhLuong"
Click="btnTinhLuong_Click"> </Button>

Sự kiện Click của Button Control.

 RadioButton
<RadioButton IsChecked="True"></RadioButton>
Thuộc tính IsChecked xác định giá trị của RadioButton Control.

 CheckBox

 GroupBox

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
13

4. Các Controls trong WPF

 ListBox: Biểu diễn danh sách phần tử

 ComboBox
<ComboBox Name="cmbLoaiNC"
SelectionChanged="cmbLoaiNC_SelectionChanged">
<ComboBoxItem Content="Khong tay nghe"/>
<ComboBoxItem Content="Co tay nghe"/>
<ComboBoxItem Content="Co tay nghe cao"/>
</ComboBox>
Sự kiện SelectionChanged của ComboBox Control.

 DatePicker và Calendar: Biểu diễn dữ liệu kiểu ngày

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
14

4. Các Controls trong WPF

 DataGrid: Cho phép nhập/xuất dữ liệu theo dòng và cột.

Thuộc tính ItemsSource dùng để liên kết tập đối


tượng dữ liệu với DataGrid, khi đó dữ liệu của tập đối tượng
được hiển thị lên DataGrid.

 Cột của DataGrid có các kiểu sau:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
15

4. Các Controls trong WPF

 Cột của DataGrid có kiểu DataGridTemplateColumn:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
16

4. Các Controls trong WPF

 Chi tiết dòng của DataGrid:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
17

4. Các Controls trong WPF

 ListView

 Menu và MenuItem

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
18

4. Các Controls trong WPF

 Expender
Biểu diễn cửa sổ hiển thị nội dung có thể đóng/mở

 Image
Biểu diễn hình ảnh

 RichTextBox

 ToolBar

 StatusBar

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
19

5. Data Binding

 Data Binding là kỹ thuật dùng để liên kết giao diện với


tập dữ liệu.

 Data Binding gồm có các thành phần chính là:

• Giao diện: Binding Target, Target Property.

• Dữ liệu: Binding Source và Source Property.

 DataContext Property: là thuộc tính dùng để chứa dữ


liệu liên kết với giao diện.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
20

5. Data Binding

 Ví dụ 1: Liên kết TextBlock (giao diện) với TextBox (dữ


liệu nguồn). Thuộc tính ElementName dùng để liên kết
TextBox nguồn và thuộc tính Path liên kết với thuộc
tính Text của TextBox.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
21

5. Data Binding

 Ví dụ 2: Liên kết DataGrid (giao diện) với Danh sách


môn học (dữ liệu nguồn).
 Lớp đối tượng Monhoc tương ứng Table monhoc trong CSDL:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
22

5. Data Binding

 Code XML

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
23

5. Data Binding
 Code C#

 Giao diện

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
24

5. Data Binding
 Ví dụ 3: Liên kết ComboBox (giao diện) với Danh sách
môn học (dữ liệu nguồn).
 Code XML

 Code C#

 Giao diện

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
25

6. Ví dụ “Quản lý môn học”

 Cơ sở dữ liệu ứng dụng:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
26

6. Ví dụ “Quản lý môn học”

 Lớp qlhvContext ánh xạ với CSDL:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
27

6. Ví dụ “Quản lý môn học”

 Lớp Monhoc chứa thông tin môn học

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
28

6. Ví dụ “Quản lý môn học”


 Form quản lý môn học

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
29

6. Ví dụ “Quản lý môn học”


 Code XML tạo giao diện

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
30

6. Ví dụ “Quản lý môn học”


 Code XML chi tiết của Grid

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
31

6. Ví dụ “Quản lý môn học”


 Code XML chi tiết của DataGridTemplateColumn

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
32

6. Ví dụ “Quản lý môn học”


 Code C# cho Form Quản lý môn học

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
33

6. Ví dụ “Quản lý môn học”


 Code C# cho phép toán thêm (nút thêm môn học)

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
34

6. Ví dụ “Quản lý môn học”


 Code C# cho phép toán xóa (nút xóa môn học)

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
35

6. Ví dụ “Quản lý môn học”


 Code C#
của nút sửa:
mở form sửa
môn học

 Giao diện
của phép
toán sửa

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
36

6. Ví dụ “Quản lý môn học”


 Code XML tạo giao diện cho phép toán sửa

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
37

6. Ví dụ “Quản lý môn học”


 Code C# cho Form sửa môn học

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
38

6. Ví dụ “Quản lý môn học”


 Code C# cho nút “Chấp nhận”

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
39

II. Entity Framework Core

Linq to Object

Entity Framework core

Linq to Entities

Xây dựng phần mềm Windows


39
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
40

1. Linq to Object

 LinQ (Language Integrated Query) là một thư

viện cung cấp cho ngôn ngữ lập trình C# và


Visual Basic. Thư viện này cung cấp khả năng
truy vấn trên tập hợp đối tượng ngay trong
ngôn ngữ lập trình.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
41

1. Linq to Object

 Khai báo sử dụng thư viện Linq:


using System.Linq;

 Truy vấn Linq bao gồm ba phần: Chứa


dữ liệu nguồn, Tạo câu lệnh truy vấn, và
Thực thi câu lệnh truy vấn.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
42

1. Linq to Object
• Chứa dữ liệu nguồn: là dữ liệu được dẫn
xuất từ interface IEnumerable<T>
• Tạo câu lệnh truy vấn: Cú pháp tạo câu
lệnh truy vấn LINQ
from …where …select …
• Thực thi câu lệnh truy vấn: sử dụng từ
khóa var để khai báo biến chứa kết quả
trả về của câu lệnh truy vấn.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
43

1. Linq to Object

 Ví dụ:
//chứa dữ liệu nguồn
int[] ds = new int[]{26,31,17,22,45,68,79};
//tạo câu lệnh truy vấn
var kq = from a in ds
where a % 2 == 0
select a;
//thực thi câu lệnh truy vấn
foreach (int a in kq) {
Console.Write("{0} ", a);
}

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
44

1. Linq to Object

 Sử dụng phương thức Linq và biểu thức


Lambda:
• Phương thức Linq: là các phương thức của
Interface IEnumerable<T>.
• Phép toán Lambda: =>
• Biểu thức Lambda:
(input parameters) => expression

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
45

1. Linq to Object

 Ví dụ:
//chứa dữ liệu nguồn
int[] ds = new int[]{26,31,17,22,45,68,79};
//tạo câu lệnh truy vấn
IEnumerable<int> kq =
ds.Where<int>(x => x % 2 == 0);
//thực thi câu lệnh truy vấn
foreach (int a in kq){
Console.Write("{0} ", a);
}

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
46

1. Linq to Object

 Sắp xếp dữ liệu:


int[] ds = new int[]{26,31,17,22,45,68,79};

• Câu lệnh truy vấn Linq:


var kq = from a in ds
where a % 2 == 0
orderby a ascending
select a;
• Phương thức Linq:
IEnumerable<int> kq =
ds.OrderBy(x => x);

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
47

2. Entity Framework Core


 Entity Framework Core là phiên bản mới sau Entity
Framework 6.x. Nó là mã nguồn mở, nhẹ, có thể mở
rộng và là phiên bản đa nền tảng (cross-platform) của
công nghệ truy cập dữ liệu Entity Framework.

 Entity framework core phát sinh mã lệnh C# là các lớp


đối tượng và các mối quan hệ giữa các lớp đối tượng
tương ứng với các thực thể và các mối quan hệ giữa
các thực thể trong CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
48

2. Entity Framework Core


 Khi phát sinh mã lệnh, Entity framework core có phát
sinh lớp DbContext và lớp này nhận nhiệm vụ mở kết
nối CSDL, thực hiện truy vấn hay thay đổi dữ liệu trong
CSDL.

 Khi chúng ta thao tác trên các lớp đối tượng tương ứng
với việc thao tác trên CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
49

2. Entity Framework Core


 EF Core cung cấp hai phương pháp sử dụng:

 Database-First: Sử dụng CSDL có sẵn để phát sinh ra


các lớp đối tượng tương ứng.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
50

2. Entity Framework Core


 Code-First: Có sẵn các lớp đối tượng tương ứng và EF
Core phát sinh ra CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
51

2. Entity Framework Core


 EF Core hỗ trợ cho nhiều CSDL khác nhau. Để sử
dụng EF Core phải sử dụng gói nuget tương ứng với
CSDL cần dùng.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
52

2. Entity Framework Core


 Cài đặt EF Core cho CSDL SqlServer:

 Gói EF Core DB provider:

Microsoft.EntityFrameworkCore.SqlServer

 Gói EF Core tools:

Microsoft.EntityFrameworkCore.Tools

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
53

2. Entity Framework Core


 Tạo Model từ CSDL có sẵn:

Trong cửa sổ Package Manager Console sử dụng lệnh


Scaffold-DbContext

Ví dụ:
PM> Scaffold-DbContext
"Server=.\SQLExpress;Database=qlhv;Trusted_Connection=True;"
Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
54

2. Entity Framework Core


 CSDL sử dụng là
SQLServer có tên qlhv.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
55

2. Entity Framework Core


 Lớp qlhvContext là ánh xạ giữa CSDL với tập đối tượng:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
56

2. Entity Framework Core


 Lớp Monhoc chứa thông tin môn học của bảng monhoc trong
CSDL:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
57

2. Entity Framework Core


 Lớp Lop chứa thông tin lớp học của bảng lop trong CSDL:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
58

2. Entity Framework Core


 Lớp Lylich chứa thông tin học viên của bảng lylich trong CSDL:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
59

2. Entity Framework Core


 Lớp Diemthi chứa thông tin điểm môn học của học viên của
bảng diemthi trong CSDL:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
60

3. Linq to Entities

 Lớp DBContext: ánh xạ CSDL với tập đối tượng trong


chương trình.
• Thư viện: System.Data.Entity

• Phương thức SaveChange(): Cập nhật dữ liệu trong


tập đối tượng xuống CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
61

3. Linq to Entities
 Lớp DBSet: ánh xạ bảng dữ liệu trong CSDL với tập
đối tượng trong chương trình.
• Thư viện: System.Data.Entity
• Các phương thức:
object Add (object entity): thêm đối tượng
vào tập đối tượng.
object Find (params object[] keyValues):
Tìm đối tượng trong tập đối tượng dựa vào khóa.
object Remove (object entity): Xóa đối tượng
trong tập đối tượng.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
62

3. Linq to Entities
 Ví dụ: qlhvContext dc = new qlhvContext();

 Ghi thông tin của đối tượng môn học mh vào CSDL.

 Xóa môn học trong CSDL có mã số môn học là msmh

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
63

3. Linq to Entities
 Truy vấn đối tượng: Trả về danh sách môn học có tên
môn học chứa giá trị tenmh.
• Câu lệnh truy vấn Linq:
var kq = from x in dc.Monhocs
where x.Tenmh.Contains(tenmh)
select x;
• Phương thức Linq:
var kq = dc.Monhocs
.Where(x => x.Tenmh.Contains(tenmh))
.ToList();

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
64

3. Linq to Entities
 Mệnh đề group…by: Trả về số học sinh đã đăng ký cho
từng môn học.
• Câu lệnh truy vấn Linq:

• Phương thức Linq:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
65
IV. ASP.NET Web API

Giới thiệu ASP.NET Web API

Tạo ứng dụng ASP.NET Web API

Controller của ASP.NET Web API

Cấu hình ASP.NET Web API

ASP.NET Web API với các phép toán


CRUD

Sử dụng các phép toán CRUD

Xây dựng phần mềm Windows


65
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
66

1. Giới thiệu ASP.NET Web API


 ASP.NET Web API là một framework có thể mở rộng
để xây dựng các dịch vụ dựa trên HTTP và có thể
được truy cập trong các ứng dụng khác nhau trên các
nền tảng khác nhau như web, windows, thiết bị di
động, v.v.

 ASP.NET Web API giống như một dịch vụ webservice


hoặc WCF nhưng nó chỉ hỗ trợ giao thức HTTP.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
67

1. Giới thiệu ASP.NET Web API

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
68

2. Tạo ứng dụng ASP.NET Web API


• Từ menu File, chọn New > Project.
• Lựa chọn mẫu ASP.NET Core Web API và nhấn Next.
• Trong cửa sổ Configure your new project, đặt tên cho
project và nhấn nút Next.
• Trong cửa sổ Additional information:
– Chọn Framework là .NET 5.0 (Long-term support).
– Nhấn nút Create.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
69

3. Controller của ASP.NET Web API


1. Tên của lớp Controller phải kết thúc bằng “Controller"
và nó phải được dẫn xuất từ lớp
Microsoft.AspNetCore.Mvc.ControllerBase.

2. Tất cả các phương thức có thuộc tính truy cập public


của Controller được gọi là phương thức Action.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
70

3. Controller của ASP.NET Web API


3. Các kiểu trả về của phương thức action:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
71

3. Controller của ASP.NET Web API


4. Routing và đường dẫn URL:

 Thuộc tính Route xác định đường dẫn URL bắt đầu
cho Controller.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
72

3. Controller của ASP.NET Web API


 Sử dụng các thuộc tính HttpGet, HttpPost, HttpPut,
HttpPatch, HttpDelete đặt trước phương thức Action để
xác định đường dẫn URL tiếp theo.
Thuộc tính HTTP Ý nghĩa
HttpGet Truy xuất dữ liệu
HttpPost Chèn dữ liệu
HttpPut Cập nhật dữ liệu hiện có
HttpPatch Cập nhật một phần dữ liệu
HttpDelete Xóa dữ liệu

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
73

3. Controller của ASP.NET Web API


 Ví dụ 1:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
74

3. Controller của ASP.NET Web API

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
75

3. Controller của ASP.NET Web API


 Ví dụ 2:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
76

3. Controller của ASP.NET Web API


 Thêm môn học:

 Xóa môn học:

 Sửa môn học:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
77

3. Controller của ASP.NET Web API


5. Dòng Request/Response:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
78

4. Cấu hình ASP.NET Web API


 File Program.cs: Tạo Web Host mặc định.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
79

4. Cấu hình ASP.NET Web API


 File Startup.cs: dùng để cấu hình cho host.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
80

4. Cấu hình ASP.NET Web API


 Phương thức ConfigureServices(): dùng để chứa các
đăng ký dịch vụ ứng dụng (Application Services).

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
81

4. Cấu hình ASP.NET Web API


 Phương thức Configure(): Chứa cấu hình đường dẫn
cho ứng dụng.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
82

4. Cấu hình ASP.NET Web API


2. ASP.NET Web API Routing (Định tuyến Web Api):

 Web API sử dụng các mẫu định tuyến để xác định


controller và phương thức action nào sẽ thực thi.

 Ít nhất phải có một mẫu định tuyến được thêm vào bảng
định tuyến để xử lý các HTTP Request khác nhau.

 Định tuyến mặc định được tạo ra trong phương thức


Configure() thuộc lớp Startup. Thông qua lời gọi hai
phương thức app.UseRouting() và app.UseEndpoints()

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
83

5. ASP.NET Web API với các phép toán CRUD


1. Các phép toán CRUD:
Create, Read, Update,
and Delete.

Ví dụ: Cho CSDL quản lý


học viên

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
84

5. ASP.NET Web API với các phép toán CRUD


 Lớp Monhoc chứa thông tin Môn học.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
85

5. ASP.NET Web API với các phép toán CRUD


 Lớp MonhocController là Controller.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
86

5. ASP.NET Web API với các phép toán CRUD


2. Phép toán Read : hiện thực các phương thức action
trong controller với thuộc tính HttpGet.

– Công dụng: phương thức truy xuất dữ liệu từ CSDL.

– Hiện thực nhiều phương thức truy xuất dữ liệu khác


nhau: dựa vào tham số và kiểu của phương thức
action.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
87

5. ASP.NET Web API với các phép toán CRUD


 Trong lớp MonhocController định nghĩa phương thức action
getDSMonhoc() trả về tất cả Môn học trong CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
88

5. ASP.NET Web API với các phép toán CRUD


 Thực thi phương thức getDSMonhoc() và kết quả thực thi.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
89

5. ASP.NET Web API với các phép toán CRUD


 Trong lớp MonhocController định nghĩa phương thức action
getMonhoc(string id) trả về Môn học có Mã môn học là id
trong CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
90

5. ASP.NET Web API với các phép toán CRUD


 Thực thi phương thức getMonhoc() với Mã môn học id là “csdl” và
kết quả thực thi.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
91

5. ASP.NET Web API với các phép toán CRUD


 Trong lớp MonhocController định nghĩa phương thức action
getTimMonhoc(string tenmh,int sotiet) trả về tất cả các
Môn học có Tên môn học chứa giá trị tenmh và Số tiết không nhỏ
hơn sotiet trong CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
92

5. ASP.NET Web API với các phép toán CRUD


 Thực thi phương thức getTimMonhoc(string tenmh,int
sotiet) với tenmh=“ôn”, sotiet=45 và kết quả thực thi.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
93

5. ASP.NET Web API với các phép toán CRUD


3. Phép toán Create : hiện thực các phương thức action
trong controller với thuộc tính HttpPost.

– Công dụng: phương thức thêm dữ liệu vào CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
94

5. ASP.NET Web API với các phép toán CRUD


 Trong lớp MonhocController định nghĩa phương thức action
postMonhoc(Models.Monhoc mh) thêm Môn học mh vào CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
95

5. ASP.NET Web API với các phép toán CRUD


4. Phép toán Delete : hiện thực các phương thức action
trong controller với thuộc tính HttpDelete.

– Công dụng: phương thức xóa dữ liệu vào CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
96

5. ASP.NET Web API với các phép toán CRUD


 Trong lớp MonhocController định nghĩa phương thức action
deleteMonhoc(string id) xóa Môn học có Mã môn học là id
trong CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
97

5. ASP.NET Web API với các phép toán CRUD


5. Phép toán Update : hiện thực các phương thức action
trong controller với thuộc tính HttpPut.

– Công dụng: phương thức sửa dữ liệu trong CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
98

5. ASP.NET Web API với các phép toán CRUD


 Trong lớp MonhocController định nghĩa phương thức action
putMonhoc(Models.Monhoc mh) sửa thông tin Môn học trong
CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
99

6. Sử dụng các phép toán CRUD


1. Lớp HttpClient: được sử dụng để gửi và nhận dữ liệu từ
Web Api bằng giao thức HTTP trên máy Client.

 Cài đặt gói Microsoft.AspNet.WebApi.Client chứa


lớp HttpClient trên máy Client.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
100

6. Sử dụng các phép toán CRUD


 Ví dụ: Xây dựng lớp CXulyMonhoc trên máy Client

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
101

6. Sử dụng các phép toán CRUD


2. Sử dụng phương thức GET:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
102

6. Sử dụng các phép toán CRUD


 Phương thức GetAsync() gửi yêu cầu GET đến server
theo địa chỉ được xác định trong strUrl.

 Phương thức GetAsync() trả về kết quả


y.Result.Content có kiểu HttpContent chứa nội dung
gửi về từ server.

 Phương thức content.ReadAsAsync<List<Models.Monhoc>>()


trả về danh sách Môn học có trong CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
103

6. Sử dụng các phép toán CRUD

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
104

6. Sử dụng các phép toán CRUD


 Phương thức timMonhoc(string mamh) trả về Môn học có
Mã môn học chứa giá trị mamh trong CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
105

6. Sử dụng các phép toán CRUD


3. Sử dụng phương thức POST:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
106

6. Sử dụng các phép toán CRUD


 Phương thức PostAsJsonAsync<Models.Monhoc>() gửi yêu
cầu POST đến server theo địa chỉ được xác định trong
strUrl.

 Phương thức PostAsJsonAsync<Models.Monhoc>() gửi về


server đối tượng Môn học mh và ghi vào CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
107

6. Sử dụng các phép toán CRUD


4. Sử dụng phương thức DELETE:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
108

6. Sử dụng các phép toán CRUD


 Phương thức DeleteAsync() gửi yêu cầu DELETE
đến server theo địa chỉ được xác định trong str.

 Phương thức DeleteAsync() gửi về yêu cầu về server


để xóa đối tượng Môn học có Mã môn học là mamh
trong CSDL.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
109

6. Sử dụng các phép toán CRUD


5. Sử dụng phương thức PUT:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
110

6. Sử dụng các phép toán CRUD


 Phương thức PutAsJsonAsync<Models.Monhoc>()
gửi yêu cầu PUT đến server theo địa chỉ được xác định
trong strUrl.

 Phương thức PutAsJsonAsync<Models.Monhoc>()


gửi yêu cầu về server để sửa đối tượng Môn học trong
CSDL tương ứng với đối tượng mh là tham số của
phương thức suaMonhoc(Models.Monhoc mh).

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
111
IV. WFP nâng cao

Resource

Data Binding và DataContext

Lệnh trong WPF

Mẫu MVVM

Xây dựng phần mềm Windows


111
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
112

1. Resource

 Cung cấp khả năng lưu trữ dữ liệu dưới dạng tài nguyên
 Cục bộ cho một điều khiển

 Cục bộ cho toàn bộ cửa sổ

 Toàn cục cho toàn bộ ứng dụng.

 Ví dụ: Khai báo tài nguyên


 Có tên tieude và giá trị là “Loại nhân công”.

 Có tên loaiNC và giá trị là mảng gồm các phần tử “Không có tay
nghề”, “Có tay nghề” và “Có tay nghề cao”.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
113

1. Resource

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
114

2. Data Binding và DataContext


 Thuộc tính
DataContext liên
kết Control với tập
dữ liệu.

 Ví dụ: Tạo liên kết


giữa đối tượng
môn học với các
Controls trong cửa
sổ sau:
Xây dựng phần mềm Windows
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
115

2. Data Binding và DataContext

 Khai báo Resource trong file App.xaml

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
116

2. Data Binding và DataContext

 Lớp CMonhoc dùng để Binding với giao diện

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
117

2. Data Binding và DataContext

 Binding đối tượng môn học với Grid thông qua thuộc tính
DataContext và Binding các thuộc tính của đối tượng
môn học với thuộc tính Text của các TextBox tương ứng

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
118

3. Lệnh (Command) trong WPF


1. Lệnh dùng để thực hiện chức năng. Lệnh cũng như sự
kiện nhưng về ngữ nghĩa thì sự kiện được nhìn ở mức
vật lý và lệnh ở mức luận lý.

2. Các thành phần chính của lệnh: lệnh, nguồn lệnh, đích
lệnh, và liên kết lệnh.
– Lệnh là hành động được thực hiện
– Nguồn lệnh là đối tượng phát động lệnh
– Đích lệnh là đối tượng mà lệnh tác động lên
– Liên kết lệnh là liên kết lệnh với các thành phần thực
thi lệnh đó.
Xây dựng phần mềm Windows
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
119

3. Lệnh (Command) trong WPF


3. Tập các lệnh do C# cung cấp:

Lớp ApplicationCommands thuộc NameSpace


System.Windows.Input.
4. Lệnh tự tạo: Xây dựng lớp đối tượng trong đó chứa
lệnh là các đối tượng có kiểu RoutedUICommand.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
120

3. Lệnh (Command) trong WPF


5. Sử dụng lệnh:
 Tạo lệnh: tạo ba lệnh là lenhThem, lenhXoa và
lenhSua

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
121

3. Lệnh (Command) trong WPF


 Liên kết lệnh với Control: lenhThem liên kết với
Button “Thêm”, lenhXoa liên kết với Button “Xóa”,
và lenhSua liên kết với Button “Sửa”.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
122

3. Lệnh (Command) trong WPF


 Liên kết lệnh với các phương thức: lệnh có hai loại
phương thức là Executed và CanExecute. Phương
thức Executed dùng để thực thi lệnh còn phương
thức CanExecute dùng để kiểm tra lệnh.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
123

3. Lệnh (Command) trong WPF


 Các phương thức tương ứng với các lệnh

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
124

3. Lệnh (Command) trong WPF


 Phương thức tương ứng với lệnh thêm

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
125

4. Mẫu MVVM (Model-View-ViewModel)


1) Giới thiệu:

View ViewModel Model

Model : Các đối tượng Models thiết lập các thành


phần dữ liệu luận lý của ứng dụng. Thông qua tầng
này, chúng ta có thể truy xuất dữ liệu trong CSDL và
trả dữ liệu về cho tầng ViewModel.

 View : Nhập/ Xuất dữ liệu cho ứng dụng và là nơi để


người dùng tương tác với ứng dụng.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
126

4. Mẫu MVVM (Model-View-ViewModel)


 ViewModel : là Model được ánh xạ với View để khi ứng
dụng thao tác trên Model tương đương với việc thao
tác trên View. Do đó trong ViewModel có các thành
phần dữ liệu và lệnh (Command) được Binding (liên
kết) với các Controls (hay Windows) trong View.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
127

4. Mẫu MVVM (Model-View-ViewModel)


2) Xây dựng ứng dụng theo mẫu MVVM:

Bước 1 : Tạo Model bằng cách dùng EF Core ánh xạ


tập đối tượng dữ liệu của ứng dụng với CSDL.
 Bước 2: Tạo View cho ứng dụng bằng XAML.
 Bước 3: Tạo lớp đối tượng cho ViewModel. Trong lớp
đối tượng chứa các thành phần sau:
 Các properties là các thành phần dữ liệu dùng để liên kết
với các Controls trong View.
 Các properties là các lệnh dùng để liên kết với các nút lệnh
trong View.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
128

4. Mẫu MVVM (Model-View-ViewModel)


 Ví dụ : Xây dựng ứng dụng Quản lý môn học.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
129

4. Mẫu MVVM (Model-View-ViewModel)


 Khai báo ModelMonhoc là tài nguyên của ứng dụng
và là đối tượng thuộc lớp VMMonhoc.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
130

4. Mẫu MVVM (Model-View-ViewModel)


 Liên kết đối tượng của lớp VMMonhoc với cửa sổ

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
131

4. Mẫu MVVM (Model-View-ViewModel)


 Liên kết các Properties Msmh, Tenmh, Sotiet trong
lớp VMMonhoc các TextBox.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
132

4. Mẫu MVVM (Model-View-ViewModel)


 Liên kết các Properties lenhThem, lenhXoa, lenhSua
trong lớp VMMonhoc với các Button.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
133

4. Mẫu MVVM (Model-View-ViewModel)


 Liên kết Property listMonhoc trong lớp VMMonhoc với
DataGrid.
 Liên kết Property monhoc trong lớp VMMonhoc với
phần tử được lựa chọn trong DataGrid.
 Liên kết các thuộc tính Msmh, Tenmh, Sotiet của đối
tượng thuộc lớp Monhoc với các cột trong DataGrid.

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
134

4. Mẫu MVVM (Model-View-ViewModel)


 Định nghĩa các Properties trong lớp VMMonhoc:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
135

4. Mẫu MVVM (Model-View-ViewModel)


 Định nghĩa các lệnh trong lớp VMMonhoc:

Xây dựng phần mềm Windows


Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN

Tài liệu tham khảo


1. Pro WPF in C# 2010: Windows Presentation
Foundation in .NET 4.0, Matthew MacDonald, 2010,
Apress.
2. WPF 4.5 Unleashed, Adam Nathan, 2014, SAMS.
3. A Programmer’s Guide to C# 5.0, Eric Gunnerson –
Nick Wienholt, 2012, Apress
4. Programming C# 5.0, Ian Griffiths, 2012, O’Reilly.
5. https://www.tutorialsteacher.com/webapi/web-api-
tutorials

Xây dựng phần mềm Windows

You might also like