繁体   English   中英

数据框视图中的组合框值更改事件?

[英]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以对击键进行直接验证。

DataGridViewComboBoxCell类

我不确定我是否正确理解了这个问题,但是如果是这样,那么您可以解决您的问题

<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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM