2012-04-02 11 views
1

Nach MS, berechnete Spalten (AKA Ausdruck Spalten), um alle Datatable Ereignisse nicht erhöhen zu validieren:Wie eine berechnete Spalte auf einem ADO.NET Datatable

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

zu verwenden Dies macht es unmöglich das DataTable.ColumnChanging Ereignis den Wert dieser Spalte unter Verwendung der Technik bei dokumentiert zu validieren:

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

Ich mag gerne wissen, ob jemand eine Möglichkeit gedacht hat irgendeine Form von va hinzufügen Lidation zu solchen berechneten Spalten, damit es mit dem Standard-ErrorProvider-Steuerelement in einem Windows Form funktioniert?

Danke

+0

Könnten Sie nicht nur eine Dataview der Datentabelle verwenden und die Listchanged Eigenschaft verwenden? – ImGreg

Antwort

0

Sie verwenden bindingsource Unter der Annahme:

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(); 
} 
Verwandte Themen