检测数据绑定源中的无效数据
本文关键字:无效 数据 数据绑定 检测 | 更新日期: 2023-09-27 17:55:04
我有一个基于对象数组的数据源组合框,并且Value
属性绑定到模型存储库上的属性:
DataSource = someArray;
ValueMember = "ArrayValue";
DisplayMember = "Name";
DataBindings.Add("Value", repository, "RepositoryValue");
DataBindings["Value"].DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged;
在某些情况下,用户更改了组合框中的选定项,它反映在repository.RepositoryValue
中,有时我们从文件或数据库中提取数据并直接填充repository.RepositoryValue
,然后自动反映在组合框中。有时,文件或数据库可能包含无效的值(someArray
中没有包含的值),我们希望检测这种情况,并强制组合框选择列表中的第一个项目,或者完全拒绝更改。这是可能的吗?我们应该怎么做呢?
可以使用Binding的Format event来处理。
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";
}
查看更多信息:
如何将自定义类型绑定到TextBox.Text?