WPF – Giới thiệu về Animation

Animation_MotionGraphicTrước đây, các ứng dụng thường phải tự tạo các thư viện hoặc chức năng tạo animation một cách thủ công. Với sự hỗ trợ của animation trong WPF, bạn không cần phải mất thời gian tìm hiểu các thư viện bên ngoài mà vẫn có thể dễ dàng tạo các ứng dụng với nhiều hiệu ứng đẹp mắt.

Tiếp tục đọc

WPF – Tự động hiện thực INotifyPropertyChanged với DynamicObject

dynamicĐây là kĩ thuật sử dụng dynamic trong .Net để tạo các đối tượng đại diện (proxy) cho đối tượng thực sự bạn cần hiện thực INotifyPropertyChange. Ý tưởng của phương pháp này là lợi dụng khả năng của đối tượng DynamicObject cho phép ta xử lý thủ công các thao tác truy xuất đến property để kích hoạt event của INotifyPropertyChanged.

Tiếp tục đọc

MVVM trong WFP (Part 4/4): Data Validation

WPF - Data Validation - IDataErrorInfoKiểm tra tính hợp lệ của dữ liệu là một phần quan trọng trong mọi ứng dụng. Trong mô hình MVVM, ta có thể thực hiện việc kiểm tra này bằng cách sử dụng hai interface IDataErrorInfo . Ta sẽ hiện thực các interface này cho các class của phần Model.

Tiếp tục đọc

MVVM trong WPF (Part 3/4): Sử dụng RelayCommand cho các loại control

input devices settingsBởi vì chỉ có các class ButtonBase, MenuItem và Hyperling được hiện thực interface ICommandSource, nên chúng mới có các thuộc tính Command, CommandParameter, CommandTarget để có thể sử dụng binding cho đối tượng RelayCommand. Đối với các loại control khác, ta cần tìm giải pháp khác thay thế để hiện thực được mô hình MVVM với RelayCommand.

Tiếp tục đọc

MVVM trong WPF (Part 2/4): RelayCommand

MVVM - Model View ViewModel PatternViệc tạo một custom RoutedCommand trong WPF rất đơn giản, bạn chỉ việc sử dụng CommandBinding là có thể tạo một command tùy ý. Tuy nhiên để ứng dụng mô hình MVVM, ta không thể sử dụng loại command thông thường, mà phải tạo một loại command mới có thể tách biệt được với giao diện. Loại command mà tôi muốn nói tới được gọi là Relay Command.

Tiếp tục đọc

MVVM trong WPF (Part 1/4): INotifyPropertyChanged và INotifyCollectionChanged

WPF - Binding Notification ExampleKhi sử dụng data binding, các control hiển thị dữ liệu sẽ động được cập nhật mỗi khi dữ liệu bị thay đổi. Để làm được điều này, các đối tượng dữ liệu được hiện thực interface INotifyPropertyChanged và INotifyCollectionChanged.

Tiếp tục đọc

Cơ bản về MVVM (Model – View – ViewModel) Pattern

View - ViewModel - Model patternKể từ khi Microsoft giới thiệu hai nền tảng phát triển ứng dụng mới là WPF và Silverlight, đã có nhiều thay đổi trong việc xử lý sự kiện và binding dữ liệu, giữa các tầng của ứng dụng với nhau. Qua đó, hầu hết các công việc của tầng kết hợp với lớp presentation. Điều này làm nảy sinh ra nhu cầu phải có một mô hình phát triển ứng dụng mới phù hợp hơn. Và do đó, Model – View – ViewModel (MVVM) pattern ra đời và ngày càng trở nên phổ biến.

Tiếp tục đọc

WPF – Tùy biến TabControl

WPF - TabControl - Custom TabItemTabControl là loại control cho phép chứa các thành phần trong nhiều thẻ. Mỗi thẻ (hay TabItem) bao gồm hai phần chính là Header và Content.  Thông thường, phần Header chính là thứ bạn cần quan tâm khi muốn thay đổi giao diện của TabControl.

Tiếp tục đọc

WPF – Tìm hiểu về ContentPresenter

WPF - ContentPresenter - BasicLà thành phần được dùng để hiển thị nội dung của các ContentControl, ContentPresenter được sử dụng chủ yếu khi thiết kế các Control Template. Mặc dù cách sử dụng rất đơn giản, nhưng bạn cũng cần nắm rõ hơn để tránh những rắc rối khi thiết kế template với thành phần này.

Tiếp tục đọc