/// <summary> /// 转为排序的BindingCollection; /// </summary> /// <typeparam name="TSource"></typeparam> /// <param name="source"></param> /// <returns></returns> public static ExtBindingList <TSource> ToBindingList <TSource>(this IEnumerable <TSource> source) { ExtBindingList <TSource> tResult = new ExtBindingList <TSource>(); foreach (var temp in source) { tResult.Add(temp); } return(tResult); }
private void InitViolinData() { violinStorage = (IViolinStorage)daoDll.CreateInstance( "Michalski.Models.ViolinStorage", false, BindingFlags.ExactBinding, null, new object[] { dburi }, null, null ); _violins = new ExtBindingList <IViolinModel>(); foreach (var v in violinStorage.ReadAll()) { _violins.Add(v); } Violins.ListChanged += new ListChangedEventHandler(ViolinsChangedHandler); Violins.AddingNew += (sender, e) => e.NewObject = violinStorage.CreateNewItem(); Violins.BeforeChange += BeforeViolinsChangedHandler; }
private void InitMakersData() { makerStorage = (IMakerStorage)daoDll.CreateInstance( "Michalski.Models.MakerStorage", false, BindingFlags.ExactBinding, null, new object[] { dburi }, null, null ); _makers = new ExtBindingList <IMakerModel>(); foreach (var m in makerStorage.ReadAll()) { _makers.Add(m); } Makers.ListChanged += new ListChangedEventHandler(MakersChangedHandler); Makers.AddingNew += (sender, e) => e.NewObject = makerStorage.CreateNewItem(); Makers.BeforeChange += BeforeMakersChangeHandler; }
private void MakerFilter_TextChanged(object sender, TextChangedEventArgs e) { var filter = (sender as TextBox).Text; if (filter.Length > 0) { IEnumerable <IMakerModel> filteredDataEnumerable = from maker in mainVM.Makers where maker.name.StartsWith(filter) select maker; var filteredData = new ExtBindingList <IMakerModel>(); foreach (var item in filteredDataEnumerable) { filteredData.Add(item); } MakersDataGrid.DataContext = filteredData; } else { MakersDataGrid.DataContext = mainVM.Makers; } }
private void ViolinFilter_TextChanged(object sender, TextChangedEventArgs e) { var filter = (sender as TextBox).Text; if (filter.Length > 0) { IEnumerable <IViolinModel> filteredDataEnumerable = from violin in mainVM.Violins where violin.maker.StartsWith(filter) select violin; var filteredData = new ExtBindingList <IViolinModel>(); foreach (var item in filteredDataEnumerable) { filteredData.Add(item); } ViolinsDataGrid.DataContext = filteredData; } else { ViolinsDataGrid.DataContext = mainVM.Violins; } }
private void CreateBoxes() { //Create output boxes if (_NrOfOutputLists > _outputboxes.Count) { //_outputboxes.Reverse(); for (int i = _outputboxes.Count; i < _NrOfOutputLists; i++) { extendedListbox <Ploeg> _out = new extendedListbox <Ploeg>(new ExtBindingList <Ploeg>()) { Dock = DockStyle.Top, Name = _BindingSourceList.Name + "_Reeks_" + (i + 1).ToString(), AllowDrop = true, }; _outputboxes.Add(_out); _out.ItemAdded += ItemAdded; } } //removing a box - set back the items to the input box and list else if (_NrOfOutputLists < _outputboxes.Count) { //_outputboxes.Reverse(); int AantalTeVerwijderen = _outputboxes.Count - _NrOfOutputLists; for (int i = 0; i < AantalTeVerwijderen; i++) { extendedListbox <Ploeg> removebox = _outputboxes.Last(); foreach (Ploeg item in removebox.Items) { _inputlist.Add(item); } splitContainer1.Panel2.Controls.Remove(removebox); splitContainer1.Panel2.Refresh(); _outputboxes.Remove(removebox); removebox.Dispose(); removebox = null; } } //remove all box controls and labels splitContainer1.Panel2.Controls.Clear(); //fill up the boxes _outputboxes.Reverse(); foreach (extendedListbox <Ploeg> box in _outputboxes) { //add items in outputlist and clean input list foreach (Ploeg pl in _inputlist) { if (pl.Reeksnaam == box.Name) { box.Items.Add(pl); } } //clean the input foreach (Ploeg pl in box.Items) { _inputlist.Remove(pl); } splitContainer1.Panel2.Controls.Add(box); splitContainer1.Panel2.Controls.Add(new Label() { Text = box.Name, Dock = DockStyle.Top }); } splitContainer1.Panel2.Refresh(); ///input as last step becuase depending on items already in an output list, the input list gets filtered splitContainer1.Panel1.Controls.Clear(); _inputbox = new extendedListbox <Ploeg>(_inputlist); //naam van de reeks _inputbox.Name = _BindingSourceList.Name; _inputbox.ItemAdded += ItemAdded; _inputbox.AutoSize = true; _inputbox.Dock = DockStyle.Top; Label _inputlabel = new Label() { Text = _inputbox.Name, Dock = DockStyle.Top }; splitContainer1.Panel1.Controls.Add(_inputbox); splitContainer1.Panel1.Controls.Add(_inputlabel); _outputboxes.Reverse(); }