private void ChooseSheetBtn_Click(object sender, RoutedEventArgs e) { GetFixtureData();// chargement fichier xls dans datagrid }
public void GetFixtureData() { Class.ExcelDataService _objExcelSer; _objExcelSer = new Class.ExcelDataService(); try { ListFixture.Add(_objExcelSer.ReadRecordFromEXCELAsync().Result); lightDataGrid.ItemsSource = ListFixture; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
public class ExcelDataService { MainWindow mainWindow = (MainWindow)Application.Current.MainWindow; OleDbConnection Conn; OleDbCommand Cmd; public ExcelDataService() { string ExcelFilePath = mainWindow.WygFileDirectory.Text; string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ExcelFilePath + ";Extended Properties=Excel 12.0;Persist Security Info=True"; Conn = new OleDbConnection(excelConnectionString); } /// <summary> /// Method to Get All the Records from Excel /// </summary> /// <returns></returns> public async Task<ObservableCollection<Fixture>> ReadRecordFromEXCELAsync() { ObservableCollection<Fixture> ListFixture = new ObservableCollection<Fixture>(); char[] MyChar = { 'W', ' ' }; await Conn.OpenAsync(); Cmd = new OleDbCommand(); Cmd.Connection = Conn; Cmd.CommandText = "Select * from [" + mainWindow.MySheetName.Text + "$]"; var Reader = await Cmd.ExecuteReaderAsync(); if (Reader.HasRows == true) { while (Reader.Read()) { ListFixture.Add(new Fixture() { Spot =ConvertionHelper.Converter.ConvertToInt(Reader["Spot"].ToString()), CircuitName = Reader["Circuit Name"].ToString(), CircuitNumber = ConvertionHelper.Converter.ConvertToInt(Reader["Circuit Number"].ToString()), Type = Reader["Type"].ToString(), Manufacturer = Reader["Manufacturer"].ToString(), Wattage = ConvertionHelper.Converter.ConvertToInt(Reader["Wattage"].ToString().TrimEnd(MyChar)), Weight = ConvertionHelper.Converter.ConvertToDecimal(Reader["Weight"].ToString().Replace(".", ",")), Mode = Reader["Mode"].ToString(), }); } //MainWindow.ListFixture = new ObservableCollection<Fixture>(MainWindow.ListFixture.OrderBy(i => i.Spot)); } Reader.Close(); Conn.Close(); return ListFixture; } }
public void LoadBlock(FlowDocument _Fd, int num, string Directname) { BlockDirect blockdirect = new BlockDirect(); blockdirect.Circuit1Cbx.SelectedIndex = 0; blockdirect.Margin = new Thickness(10); MainWindow.ListBlock.Add(blockdirect); BlockUIContainer blockUIContainer = new BlockUIContainer(); blockdirect.Direct.Name = Directname; blockUIContainer.Name = "blockuicontainer" + num; blockUIContainer.Child = blockdirect; _Fd.Blocks.Add(blockUIContainer); //ObservableCollection<Fixture> listprovisoire = new ObservableCollection<Fixture>(); //listprovisoire.Add(MainWindow.ListFixture); //MainWindow.ListFixture.Clear(); ///!!!!!!Avec ces lignes decommentées sa fonctionne......Une rustine!!!!! //MainWindow.ListFixture.Add(listprovisoire); }
private void AdddirectBtn_Click(object sender, RoutedEventArgs e) { switch (BlockTabControl.SelectedIndex) { case 0: LoadBlock(Zone01FlowDoc, 1, "DirectFd01"); break; case 1: LoadBlock(Zone02FlowDoc, 2, "DirectFd02"); break; case 2: LoadBlock(Zone03FlowDoc, 3, "DirectFd03"); break; case 3: LoadBlock(Zone04FlowDoc, 4, "DirectFd04"); break; case 4: LoadBlock(Zone05FlowDoc, 5, "DirectFd05"); break; case 5: LoadBlock(Zone06FlowDoc, 6, "DirectFd06"); break; } }
public MainWindow() { InitializeComponent(); ListFixture = new ObservableCollection<Fixture>(); DataContext = this; } public static ObservableCollection<Fixture> ListFixture { get; set; }
toujours toi a répondre à mes problèmes
le loadBlock 1 et 2 sont identiques juste le blockdirect.Circuit1Cbx.SelectedIndex = 12 codes quasiment identiques, c'est une erreur. S'il y a un bug, il faut que tu le corriges 2 fois. Si le fonctionnement change, il faut que tu modifies 2 fois.
MainWindow mainWindow = (MainWindow)Application.Current.MainWindow; public BlockDirect() { InitializeComponent(); //....
MainWindow mainWindow; public BlockDirect(MainWindow FenetrePrincipale) { InitializeComponent(); mainWindow = FenetrePrincipale; //....
BlockDirect blockdirect = new BlockDirect();
BlockDirect blockdirect = new BlockDirect(this);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionpublic void Fixture_PropertyChanged(object sender, PropertyChangedEventArgs e) { int chiffre; Fixture test = sender as Fixture; switch (e.PropertyName) { case "CircuitNumber" : // pour avoir int chiffre chiffre = test.CircuitNumber; break; case "CircuitName": // pour avoir int chiffre chiffre = test.CircuitName; break; } if (chiffre > 0 & chiffre < 4) // int chiffre va de 1 jusqu'à 3 dans les 2 choix { GenerePropertyChanged("Filtres" + chiffre.ToString()); GenerePropertyChanged("SommeCircuit" + chiffre.ToString()); } }
27 juil. 2020 à 19:55
(juste répondu a ma question).
Salut bonne soirée.
27 juil. 2020 à 19:59