[英]Combobox value changes event in Data GridView?
我有一个包含2列的DataGridView,第一个是组合框,第二个也是Windows应用程序中的组合框。
如果用户更改了组合框,则需要适当地更新第三列中的第二个组合框,但是我的问题是如何做到这一点? 我使用以下技术添加了两个组合框
DataTable Pdt = new DataTable();
Pdt = objProductCategory.SelectAll();
BindingSource ps = new BindingSource();
ps.DataSource = Pdt;
DataGridViewComboBoxColumn ProductCatColumn = new DataGridViewComboBoxColumn();
ProductCatColumn.DataSource = ps;
ProductCatColumn.HeaderText = "Product Category";
ProductCatColumn.Name = "ProductCatColumn";
ProductCatColumn.ValueMember = "ProductCatId";
ProductCatColumn.DisplayMember = "CatName";
gvSale.Columns.Add(ProductCatColumn);
您可能想要创建一个继承DataGridViewComboBoxCell
的类。
然后覆盖您需要的任何事件方法,例如OnKeyUp
以对击键进行直接验证。
我不确定我是否正确理解了这个问题,但是如果是这样,那么您可以解决您的问题
<DataGridComboBoxColumn
Header="FirstColumn"
ItemsSource="{Binding FirstItemsSource}"
SelectedValuePath="{Binding FirstSelectedValuePath}"
DisplayMemberPath="{Binding FirstDisplayMemberPath}"
SelectedValueBinding="{Binding FirstSelectedValue}"/>
<DataGridComboBoxColumn
Header="SecondColumn"
ItemsSource="{Binding SecondItemsSource}"
SelectedValuePath="{Binding SecondSelectedValuePath}"
DisplayMemberPath="{Binding SecondDisplayMemberPath}"
SelectedValueBinding="{Binding SecondSelectedValue}"/>
在DataContext(代码隐藏或ViewModel)中,实现相应的属性:
public IList<YourType> FirstItemsSource
{
get
{
return this.firstItemsSource;
}
set
{
this.firstItemsSource = value;
}
}
public YourType SecondSelectedValue
{
get
{
return this.secondSelectedValue;
}
set
{
this.secondSelectedValue = value;
// here you can set the FirstItemsSource
this.FirstItemsSource = this.RefreshFirstItemsSource();
}
}
希望我已正确理解您,并且该解决方案可以帮助您进一步;-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.