76 messaggi dal 16 marzo 2011
Ciao

ho questo codice che esegue l'aggiornamento del testo di vari controlli relazionati alla stessa variabila presente in un datatable. Funziona beniissimo in ambinete Window, richiamando il metodo UpdateControlValue tramite BeginInvoke.Action dalla form principale.

Quando lo eseguo su Linux tramite MONO in un raspian non funziona l'aggiornamento del testo dei controlli

Grazie a chi mi aiuterà

DataSet ds = new DataSet();
DataTable tabella1 = new DataTable(TABLE_NAME);
private const string TABLE_NAME = "CostantTable";
private const string COLUMN_NAME = "CtrlName";
private const string COLUMN_VALUE = "CtrlValue";

public HmiMappingManager()
{
tabella1.Columns.Add(COLUMN_NAME, typeof(string));
tabella1.Columns.Add(COLUMN_VALUE, typeof(string));

var values = Enum.GetValues(typeof(ControlMapEnum));

foreach (var val in values)
{
string defaultValue = DecorationHelper.GetDescription((ControlMapEnum)Enum.Parse(typeof(ControlMapEnum), val.ToString()));
tabella1.Rows.Add(new object[2] { val.ToString(), defaultValue });
}

ds.Tables.Add(tabella1);
ds.AcceptChanges();
}

public void AssignConstantToControl(List<System.Windows.Forms.Control> controlToAssociate, ControlMapEnum controlId)
{
BindingSource bs1 = new BindingSource();
bs1.DataSource = ds;
bs1.DataMember = TABLE_NAME;
bs1.Filter = COLUMN_NAME + " = '" + controlId.ToString() + "'";

foreach (System.Windows.Forms.Control control in controlToAssociate)
control.DataBindings.Add("Text", bs1, COLUMN_VALUE);

}


public void UpdateControlValue(ControlMapEnum controlId, string newValue)
{
DataRow dr = tabella1.Select(COLUMN_NAME + " = '" + controlId.ToString() + "'").FirstOrDefault();

if (dr == null)
return;

int index = tabella1.Rows.IndexOf(dr);

tabella1.Rows[index].BeginEdit();
tabella1.Rows[index][COLUMN_VALUE] = newValue;
tabella1.Rows[index].EndEdit();
LoggerManagerUtility.Instance.Log(LogLevel.Info, this, "END UPDATE CONTROL" + controlId + " TEXT TO VISUALIZE: " + newValue);


}

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.