Thứ Ba, 19 tháng 3, 2019

PHẦN 3: Cách Navigate Data trong Windows Forms

PHẦN 3: CÁCH NAVIGATE DATA TRONG WINDOW FORMS

Trong ứng dụng window, cách dễ nhất để duyệt qua các record trong dât source là kết nối một BindingSource componnet với một datasource và sau đó bind control vào Binding Source. Sau đó bạn có thể sử dụng các phương thức trên Binding source như MoveNext, MoveLast, MovePrevious và MoveFirst. Sử dụng các method này sẽ điều chỉnh thuộc tính Position và Current của BindingSource một cách tự động. Bạn có thể tìm những item và đặt chúng là item hiện tại, bằng cách setting thuộc tính Position.

Để tăng vị trí Position trong datasource

- Set thuộc tính position của BindingSource cho data của bạn thành record mà bạn muốn đi tới

Lưu ý là khi set thuộc tính Position thành một giá trị vượt ngoài record cuối cùng sẽ không gây ra một lỗi, bởi .Net framework cho phép bạn set vị trí nằm ngoài bounding list. Nếu quan trọng cho ứng dụng của bạn để biết được rằng bạn đã đi quá record đầu tiên hay cuối cùng hay không, chèn thêm một lệnh logical test mỗi khi bạn thi hành.
MoveNext() có thể khiến position đi quá vị trí cuối cùng

Kiểm tra khi bạn đi quá vị trí cuối cùng hoặc đầu tiên

- Thêm một event handler cho event PositionChanged

Void customersBindingSource_PositionChanged(object sender, EventArgs e)
{
          If (customersBindingSource.Position == customersBindingSource.Count -1)
                   nextButton.Enabled = false;
          else
                   nextButton.Enabled = true;
}

Tìm kiếm một item và set nó là item hiện tại

- Để tìm một record mà bạn muốn set làm item hiện tại, bạn có thể sử dụng phương thức Find() của BindingSource, datasource của bạn được cài đặt bằng IBindingList. 

Một số ví dụ của data source cài đặt IBindingList là BingingList<T> và DataView

Void findButton_Click (object sender, EventArgs e)
{
          Int foundIndex = customersBindingSource.Find(“CustomerID”, “Action”);
          customersBindingSource.Position = foundIndex;
 }

Về method Find()

Find(PropertyDescriptor, Object)

Tìm kiếm index của một item có mô tả của property

Private void button1_Click(object sender, EventArgs e)
{
          If (binding1.SupportsSearching != true)
                   MessageBox.Show(“Không thể tìm kiếm do không hỗ trợ!”);
          Else
          {       
                   Int foundIndex = binding1.Find(“Name”, textBox1.Text);
                   If (foundIndex> -1) listBox1.SelectedIndex = foundIndex;
                   Else
                             MessageBox.Show(“Không tìm thấy mục ” + textBox1.Text);
}

}

Không có nhận xét nào:

Đăng nhận xét