public DataGridWindow(List <Groups> groupList, List <GroupParameters> parametersList) { this.InitializeComponent(); var dataViewModel = new DataViewModel(); this.DataContext = dataViewModel; var Groups = new ObservableCollection <IRow>(); foreach (var gitem in groupList) { var ParamsToAdd = new ObservableCollection <IColumn>(); foreach (var item in parametersList) { for (int i = 1; i < item.paramSize + 1; i++) { ParamsToAdd.Add(new PropertyGrid { ParamName = item.paramName + i, ParamValue = item.paramDensity.ToString() }); } } Groups.Add(new GroupGrid { Name = gitem.groupName, Params = ParamsToAdd }); } dataViewModel.PopulateViewModel(Groups); }
void generateData() { DataGridWindow KEK = new DataGridWindow(groupList, parametersList); var dialogresult = KEK.ShowDialog(); if (dialogresult == true) { DataViewModel GeneratingData = (DataViewModel)KEK.DataContext; using (var dialog = new System.Windows.Forms.FolderBrowserDialog()) { System.Windows.Forms.DialogResult result = dialog.ShowDialog(); if (result == System.Windows.Forms.DialogResult.OK) { try { int nrObiektu = 1; string obiektyGrupy = ""; string obiektyParametry = ""; string newObject = ""; HashSet <string> uniqueObiekty = new HashSet <string>(); int gestoscXparam; int groupnr = 0; bool notunique = true; List <int> groupPassList = new List <int>(); List <List <double> > paramPassList = new List <List <double> >(); foreach (var group in GeneratingData.Rows) //Tworzenie obiektu i przypisanie do grupy { for (int i = 0; i < groupList[groupnr].groupSize; i++) { obiektyGrupy += "Obiekt" + nrObiektu.ToString() + " - " + group.Name + Environment.NewLine; obiektyParametry += "Obiekt" + nrObiektu.ToString() + " - " + group.Name + ","; //Tworzenie parametrów i przypisanie do obiektu groupPassList.Add(groupnr); notunique = true; while (notunique) { List <double> nextPassList = new List <double>(); newObject = ""; foreach (var prop in group.Columns) { gestoscXparam = rnd.Next(0, 100); int value = 0; if (Int32.TryParse(prop.EditableValue, out value)) { if (gestoscXparam <= value) //Paramety o podanej gęstosci zasięgu 0-100 { ///////////////////////////tutaj to ogólnie trzeba random dyskretny wjebac gdzie 100 to zawsze 0 to nigdy bo teraz to mi nie wychodzi i brane z Parametru newObject += "1" + ","; nextPassList.Add(1); } else { newObject += "0" + ","; nextPassList.Add(0); } } else { int valueRnd = rnd.Next(0, 2); newObject += valueRnd.ToString() + ",";//jak nie ma gęstości to poprostu random nextPassList.Add(valueRnd); } } if (uniqueObiekty.Add(newObject)) { notunique = false; obiektyParametry += newObject; paramPassList.Add(nextPassList); } }//while not unique obiektyParametry = obiektyParametry.TrimEnd(','); obiektyParametry += Environment.NewLine; ++nrObiektu; } groupnr++; }///Rows /* * * * foreach (var group in groupList) //Tworzenie obiektu i przypisanie do grupy * { * for (int i = 0; i < group.groupSize; i++) * { * obiektyGrupy += "Obiekt" + nrObiektu.ToString() + " - " + group.groupName + "\\n"; * obiektyParametry += "Obiekt" + nrObiektu.ToString() + " - "; //Tworzenie parametrów i przypisanie do obiektu * foreach (var prop in parametersList) * { * gestoscXparam = rnd.Next(0, 100); * if (gestoscXparam <= prop.paramDensity) //Paramety o podanej gęstosci zasięgu * { * obiektyParametry += rnd.Next(0, prop.paramSize) + " , "; //Paramety o podanym zasięgu * } * else * { * obiektyParametry += "0" + " ,"; * } * } * obiektyParametry = obiektyParametry.TrimEnd(','); * obiektyParametry += "\\n"; ++nrObiektu; * } * } * * * */ string path = dialog.SelectedPath + "\\\\" + fileNameTextBox.Text.ToString() + "Groups.txt"; System.IO.File.WriteAllText(path, obiektyGrupy); path = dialog.SelectedPath + "\\\\" + fileNameTextBox.Text.ToString() + "Objects.txt"; System.IO.File.WriteAllText(path, obiektyParametry); MessageBox.Show("Pliki zostały utworzone", "Nothing to acknowledge", MessageBoxButton.OK, MessageBoxImage.Information); ValidationWindow validate = new ValidationWindow(groupPassList, paramPassList); validate.Show(); validate.Close(); } catch (Exception) { MessageBox.Show("Pliki nie zostały utworzone błąd", "Nothing to work properly", MessageBoxButton.OK, MessageBoxImage.Warning); throw; } } //folderBrowserDialogResult } //folderBrowserDialogUsing } //resultWindowDialog else { MessageBox.Show("Jakiś Błąd w drugim oknie", "Nothing to work properly", MessageBoxButton.OK, MessageBoxImage.Warning); } } ///GenerateData