public CCoupleValeurEtValeurDisplay GetValeur(object objet, int nColonne, bool bMultiThread) { if (objet == null) { return(new CCoupleValeurEtValeurDisplay("", null)); } CObjetDataCache cache = null; try { if (!m_cache.TryGetValue(objet, out cache)) { cache = new CObjetDataCache(objet); m_cache[objet] = cache; } } finally { if (cache == null) { cache = new CObjetDataCache(objet); m_cache[objet] = cache; } } CCoupleValeurEtValeurDisplay data = cache.GetValeur(nColonne); if (data != null) { return(data); } if (bMultiThread) { cache.SetValeur(nColonne, c_strWaitingData, null); CThreadData thread = new CThreadData(objet, nColonne, cache); lock (typeof(CLockThread)) { m_listeThreadToStart.Add(thread); } return(new CCoupleValeurEtValeurDisplay(c_strWaitingData, null)); } else { data = GetValeurHorsCache(objet, nColonne, cache); return(data); } }
public void SetValeur(object objet, int nColonne, string strValeur, object objValeur) { if (objet == null) { return; } CObjetDataCache cache = null; if (!m_cache.TryGetValue(objet, out cache)) { cache = new CObjetDataCache(objet); m_cache[objet] = cache; } if (strValeur == null) { cache.SetValeur(nColonne, null, null); } else { cache.SetValeur(nColonne, strValeur, objValeur); } }
private CCoupleValeurEtValeurDisplay GetValeurHorsCache(object objet, int nColumnIndex, CObjetDataCache cache) { IWndIncluableDansDataGrid ctrl = null; if (m_dicControles.TryGetValue(nColumnIndex, out ctrl)) { try { object elementEdite = GetElementEdite(objet, nColumnIndex); object val = ctrl.GetObjectValueForGrid(elementEdite); string strVal = ctrl.ConvertObjectValueToStringForGrid(val); cache.SetValeur(nColumnIndex, strVal, val); return(new CCoupleValeurEtValeurDisplay(strVal, val)); } catch { cache.SetValeur(nColumnIndex, "", null); } } return(new CCoupleValeurEtValeurDisplay("", null)); }
public CThreadData(object ob, int nCol, CObjetDataCache cache) { Objet = ob; ColumnIndex = nCol; Cache = cache; }