2011-05-06 48 views
0

我與基於對象的陣列上的數據源的組合框,以及Value屬性綁定到在模型信息庫中的屬性:檢測所述數據的無效數據綁定源

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

在某些情況下用戶更改組合框中的選定項目,它反映在repository.RepositoryValue中,有時我們從文件或數據庫中提取數據,並直接填充repository.RepositoryValue,然後自動反映在combox框中。有時文件或數據庫可能包含無效值(someArray中未包含的值),我們希望檢測該場景並強制組合框選擇列表中的第一項或完全拒絕該更改。這是可能的,我們應該怎麼做呢?

回答

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?