2012-04-02 28 views
1

根據MS驗證計算列,計算列(AKA表達列)沒有提出任何數據表事件:如何在一個ADO.NET數據表

http://msdn.microsoft.com/en-us/library/w9y9a401%28v=vs.80%29.aspx

這使得無法使用該DataTable.ColumnChanging事件通過使用在記錄的技術來驗證這些列的值:

http://msdn.microsoft.com/en-us/library/ms171930%28v=vs.80%29.aspx

我想知道是否有人已經想到了一個辦法,以添加一些形式的VA的對這樣的計算列進行蓋帽,以便它能夠與Windows窗體上的標準ErrorProvider控件一起工作?

謝謝

+0

不能你只需要使用的數據表的一個DataView和使用的ListChanged財產? – ImGreg 2012-04-03 04:18:44

回答

0

假設你使用bindingsource

private void Asignar_Columna_Balance() 
{  


    if (cataciones_BindingSource.Current == null) return; 
    var _fila_Actual = ((cataciones_BindingSource.Current as DataRowView).Row as DataSet_SKNCC_Reportes.REPORTE_CATACIONESRow); 

    if ((cataciones_BindingSource.Current as DataRowView).IsNew) 
     _fila_Actual["BALANCE"] = (_fila_Actual.AROMA + _fila_Actual.ACIDEZ + _fila_Actual.CUERPO + _fila_Actual.SABOR).ToString(); 
    else 
    { 
     //FORCE REBINDING!!! PARA QUE FUNCIONE AL EDITAR UN BINDINGDOURCE!!!! 
     cataciones_Tabla_Lote.Columns["BALANCE"].Expression = null;     
     cataciones_Tabla_Lote.Columns["BALANCE"].Expression = "Aroma + Acidez + Cuerpo + Sabor"; 
    } 

    //balance_Mask.Text = (_fila_Actual.AROMA + _fila_Actual.ACIDEZ + _fila_Actual.CUERPO + _fila_Actual.SABOR).ToString(); 
} 
相關問題