public static void SetReference(this View AView, Ref ARef) { FHelperRef.GetOrCreateValue(AView).Reference = ARef; }
public static Window miRefNewReaders(String ATtile, Ref ARef) { Window LResult = null; for (int i = 0; i < Application.Top.Subviews.Count; i++) { if (Application.Top.Subviews[i].Id == ATtile) { LResult = (Window)Application.Top.Subviews[i]; Application.Top.RemoveAll(); Application.Top.Add(LResult); Application.Top.Add(MainMenu); LResult.FocusFirst(); break; } } if (null == LResult) { LResult = new Window(ATtile) { Id = ATtile, X = 0, Y = 1, // для меню оставим одну строчку Width = Dim.Fill(), Height = Dim.Fill() }; ListViewReaders = new ListView( new Rect() { X = 0, Y = 1, Height = 56, Width = 128 }, ARef); ListViewReaders.SetReference(ARef); ListViewReaders.SelectedChanged += () => { ListViewReadersOnSelectedChanged(); }; LResult.Add(ListViewReaders); WndReadersFrameRight = new FrameView("Читатель") { X = 128, Y = 1, Height = 56, Width = 30 }; WndReadersFrameRight.Add( new Label("Код:") { X = 1, Y = 1, Height = 1, Width = WndReadersFrameRight.Width - 4 } ); TxtFldReadersId = new TextField("") { X = 1, Y = 2, Height = 1, Width = WndReadersFrameRight.Width - 4 }; TxtFldReadersId.SetLinkedControl(ListViewReaders); TxtFldReadersId.Enter += TxtFld_OnEnter; TxtFldReadersId.Leave += TxtFldId_OnLeave; WndReadersFrameRight.Add(TxtFldReadersId); WndReadersFrameRight.Add( new Label("Название:") { X = 1, Y = 5, Height = 1, Width = WndReadersFrameRight.Width - 4 } ); TxtFldReadersName = new TextField("") { X = 1, Y = 6, Height = 1, Width = WndReadersFrameRight.Width - 4 }; TxtFldReadersName.SetLinkedControl(ListViewReaders); TxtFldReadersName.Enter += TxtFld_OnEnter; TxtFldReadersName.Leave += TxtFldName_OnLeave; WndReadersFrameRight.Add(TxtFldReadersName); LResult.Add(WndReadersFrameRight); LResult.Add(new Button(0, 0, "S Сохранить") { Width = 16, Clicked = () => { RefSave(Readers); } }); LResult.Add(new Button(17, 0, "A Добавить") { Width = 16 //, //Clicked = () => { AuthorsAdd(); } }); LResult.Add(new Button(32, 0, "D Удалить") { Width = 16, Clicked = () => { RefDel(ARef, ListViewReaders); } }); Application.Top.Add(LResult); } ListViewReaders.FocusFirst(); Application.Run(); return(LResult); }
public static void RefDel(Ref ARef, ListView AListView) { ARef.Remove(ARef.ElementAt(AListView.SelectedItem)); AListView.FocusFirst(); }