我在使用devexpress GridControl
的winforms应用程序上工作,我有一个ViewModel与两个属性
public class MyViewModel
{
public List<Cusomer> Customers{get;set;}
public Customer SelectedCustomer {get;set;}
}
我如何将GridControl的SelectedRow绑定到我的ViewModel SelectedCustomer
属性?
谢谢
不确定是否有直接绑定属性的方法。当选择改变时,你可以捕获BindingSource
中触发的事件。
1)为CurrentChanged
事件添加事件处理程序:
public class MyViewModel
{
public List<Customer> Customers { get; set; }
public Customer SelectedCustomer { get; set; }
public void BindingSourceCurrentChanged(object sender, EventArgs e)
{
var bindingSource = sender as BindingSource;
if (bindingSource == null) return;
SelectedCustomer = bindingSource.Current as Customer;
}
}
2)将GridControl, BindingSource和ViewModel链接在一起:
BindingSource bindingSource = new BindingSource { DataSource = myViewModel.Customers };
bindingSource.CurrentChanged += myViewModel.BindingSourceCurrentChanged;
gridControl1.DataSource = bindingSource;
gridView1.PopulateColumns();