检测数据绑定源中的无效数据

时间:2011-05-06 17:40:51

标签: c# winforms data-binding

我有一个基于对象数组的DataSource组合框,Value属性绑定到模型库的属性:

DataSource = someArray;
ValueMember = "ArrayValue";
DisplayMember = "Name";
DataBindings.Add("Value", repository, "RepositoryValue");
DataBindings["Value"].DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged;

在某些情况下,用户更改组合框中的选定项目,并反映在repository.RepositoryValue中,有时我们从文件或数据库中提取数据并直接填充repository.RepositoryValue,然后自动反映在combox框中。有时,文件或数据库可能包含无效值(someArray中未包含的内容),我们希望检测到该场景并强制组合框选择列表中的第一项或拒绝完全改变。这可能吗,我们应该怎么做呢?

1 个答案:

答案 0 :(得分:0)

您可以使用Binding的Format事件来处理它。

Binding SelectedValueBinding = new Binding("SelectedValue", repository, "RepositoryValue", true, DataSourceUpdateMode.OnPropertyChanged);
SelectedValueBinding.Format += new ConvertEventHandler(SelectedValueBinding_Format);
myComboBox.DataBindings.Add(SelectedValueBinding);

void SelectedValueBinding_Format(object sender, ConvertEventArgs e)
{
        // if e.Value is Invalid
        // myComboBox.SelectedValue = "Default Value";
}

查看更多信息:

How does one databind a custom type to TextBox.Text?