Binding  là cơ chế ràng buộc, giúp trao đổi dữ liệu giữa nguồn cấp và đối tượng nhắm đến, ví dụ như  Data Source và Control hoặc binding giá trị từ Control này sang Control khác etc... Nó cho phép dữ liệu được trao đổi 2 chiều. Đây là một cơ chế tuyệt vời khi sử dụng mô hình MVVM vốn được sinh ra dành cho Xaml.
Chúng ta sẽ tạo một dự án mẫu MVVM sử dụng cả hai kiểu Binding và x:Bind ngay sau khi tìm hiểu cơ bản về 2 cơ chế này.

Infomation

x:Bind trên Windows 10 là một thay thế cho Binding mặc dù nó thiếu một vài tính năng của Binding. Nhưng nó thực thi nhanh hơn và ít tốn bộ nhớ, hỗ trợ gỡ lỗi tốt hơn rất nhiều. Các mã thực thi của x:Bind được tạo ra tại Compile-Time khác với Binding được giám sát tại Runtime.

1. Một vài thuộc tính tương đồng của cả 2


Binding x:Bind
Converter Converter
ConverterLanguage ConverterLanguage
ConverterParameter ConverterParameter
ElementName ElementName
FallbackValue FallbackValue
Mode Mode
Path Path
RelativeSource RelativeSource
Source Source
TargetNullValue TargetNullValue
UpdateSourceTrigger UpdateSourceTrigger

2. Converting Data

Chúng ta có thể sử dụng IValueConverter để nắm bắt dữ liệu giữa nguồn cấp và đích đến. Từ đó bạn có thể kiểm duyệt được thông tin trả về cho cả hai phía. Ví dụ bạn binding dữ liệu dưới ViewModel lên Textbox với giá trị là xyz, nhưng sử dụng convert bạn có thể trả về cho Textbox bất cứ thứ gì bạn muốn.
ValueConverter có 2 phương thức là:

  • Convert Method: Nhận dữ liệu và bạn có thể chuyển đổi nó sang bất kỳ kiểu nào phù hợp để đưa lên đối tượng nhận.
  • ConvertBack Method: Nhận dữ liệu nhập vào từ đối tượng và bạn có thể chuyển đổi lại cho phù hợp để cập nhật xuống data source. Thực tế nó ít được sử dụng.

3. Hữu ích của x:Bind

- Hiệu quả, tốc độ vượt trội. Phần lớn thời gian bạn có thể dùng x:Bind để thay thế hoàn toàn cho Binding cơ bản
- Bạn có thể gọi trực tiếp một method, event mà không cần sử dụng Binding Command. Có vài điểm cần lưu ý là method không thể có tham số và không hỗ trợ overload, hành động CanExecute cũng không được hỗ trợ.
- Có thể thay thế binding Element bằng cách sử dụng Name của control cần lấy giá trị
<TextBlock x:Name="LabelTextBlock" Text="Hello World!"/>
<TextBox Text="{x:Bind LabelTextBlock.Text}"/>
Lưu ý khác
- x:Bind không thể dùng trong Setter của Style nhưng có thể dùng trong DataTemplate để định nghĩa Style

4. Hữu ích của Binding

- Bạn cần làm việc với Duck Type

- Dùng với Json hoặc một untyped object


Created: 26/10/2015
Updated: 29/10/2015
Sample: Full Source Code

thumbnail [UWP] How to use Binding and x:Bind

data:label.name author

premiumpng.com

Design Publisher

Download 0
No comments
Template in .PSD format

MR Laboratory License

Free for personal purpose use . More info


Buy Now This Template

No comments:

Post a Comment

Commets Download Photoshop Actions, Lightroom Presets, PSD Template, Mockups, Stocks, Vectors, Fonts. Download free

Newer Post Older Post Home

Copyright © 2021 MR Laboratory All rights reserved.

Setting