Witam
Chciałbym stworzyć swojego BindingSource. Polega to na tym, że mam pliki XML lub CSV które wczytuję a następnie wyświetlam dane w DataGridView. Zasada działania programu jest prosta. Mamy TextBox w który wpisujemy tekst, wciskamy enter lub tabulację (czytnik kodów kreskowych wysyła na końcu tabulację). Następnie program szuka podanej wartości w kolumnie numer 1 a następnie jak znajdzie wyświetla wartość z kolumny numer 0. Zwykła tabela przypisań(chociaż ja jej nie mam). Mam zbudowaną klasę.
class Setup
{
string TopFile = "NXT_FeederReportUnit_T.xml";
string BottomFile = "NXT_FeederReportUnit_B.xml";
public string Name;
public enum Side {Top, Bottom, Both};
Side Actual_side;
List BothSetup;
List TopSetup;
List BottomSetup;
public Setup()
{
BothSetup = new List();
TopSetup = new List();
BottomSetup = new List();
Name = "";
}
}
class ComponentInSetup
{
public static Dictionary Columns = new Dictionary
{
{"fsSetPos",0},
{"fsPartNum",1},
{"Localization",2},
{"pkgInfoTapeWidth",3},
{"pkgInfoFeedPitch",4},
{"fsPartQty",5},
{"fsPartQtyTop",6},
{"fsPartQtyBot",7},
{"Side",8},
{"Checked",9},
};
public static int CountOfColumns = Columns.Count;
public Dictionary component = new Dictionary(CountOfColumns);
//public string[] component = new string[CountOfColumns];
}
Oczywiście wszystko obudowane jest funkcjami tak żeby to wypełnić. Zastanawiałem się czy nie da zrobić się tak że jeśli zmienię coś w listach Top, Bottom i Both Setup żeby automatycznie zmieniał się datagridView.
Druga sprawa, zadanie na wyższym poziomie, że jeśli w słowniku compomnent ulegnie zmianie pole Checked czyli z indeksem 9 automatycznie DataGridView zmienił kolor wiersza w którym to Checked zostanie zmienione.
To jest rozważanie teoretyczne które ewentualnie wspomoże praktykę, póki co muszę przejść dwoma pętlami, raz po liście, zaznaczyć komponent i drugi raz po datagridview żeby podświetlić linijkę.
BindingSource natywnie wspiera listy, jednak jak zmusić go do tego żeby po dostaniu listy zajrzał do słownika component i przypisał do dataDridView wartości do odpowiednich kolumn (kolumny nazywają się tak samo jak w słowniku Columns wyżej)