Hi,
ich hab eine DataGridViremCombobox die von einer Tabelle befüllt wird.
DataSource=DataTable vom DataSet
DisplayMember = String
DisplayValue= Guid
Um die Benutzerangaben zu validieren setze ich das RowValidating-Event
ein:
Code:
private void einsatzmöglichkeitenDataGridView_RowValidating(object
sender, DataGridViewCellCancelEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
if (dgv.IsCurrentRowDirty)
{
string errMsg = string.Empty;
DataGridViewRow r = dgv.CurrentRow;
DataGridViewCell cKat = r.Cells[this.einsatzColKatID.Index];
DataGridViewCell cReg = r.Cells[this.einsatzColRegion.Index];
if (!r.IsNewRow)
{
if (cKat.Value.ToString() == String.Empty)
errMsg = "Bitte einen Eintrag auswählen";
if (cReg.Value.ToString() == String.Empty)
errMsg = "Bitte einen Eintrag auswählen";
if (errMsg != string.Empty)
{
r.ErrorText = errMsg;
e.Cancel = true;
}
else
{
r.ErrorText = string.Empty;
e.Cancel = false;
}
}
}
}
Leider konnte ich mir nicht anders helfen als mit
if (cKat.Value.ToString() == String.Empty)
da ich den Value nicht richtig greifen kann, null funktioniert nicht
und Guid.Empty geht auch nicht und wenn ich mir das ganze mit dem
Debugger anschaue sehe ich für Value nur "{}".
Es funktioniert auch fas alles bis auf folgende Kombination die eine
Exeption auslöst:
SP1 | SP 2 | SP x .......
wert|leer | wechsel nach unten oder oben alles OK
leer |wert | wechsel nach unten alles OK
leer |wert | wechsel nach oben Exception
Und mit Ok meine ich ich bekomm mein Ausrufzeichen!
Habt Ihr eine Idee oder wie sollte ich besser Prüfen?
Grüße
Attila