Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections.ObjectModel;
- using System.ComponentModel;
- using System.Diagnostics;
- using System.Runtime.CompilerServices;
- using System.Windows.Input;
- using CommunityToolkit.Mvvm.ComponentModel;
- using Microsoft.Maui.Platform;
- namespace MM2.Views;
- public partial class NewPage1 : ContentPage
- {
- public partial class Item : ObservableObject
- {
- [ObservableProperty] public string acct;
- [ObservableProperty] public decimal amount;
- public int tag;
- public event PropertyChangedEventHandler PropertyChanged;
- protected void OnPropertyChanged([CallerMemberName] string propertyName = "")
- {
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- }
- }
- public partial class MyViewModel : ObservableObject
- {
- Item _SelectedItem;
- public Item SelectedItem
- {
- get { return _SelectedItem; }
- set
- {
- if (_SelectedItem == value) return;
- _SelectedItem = value;
- OnPropertyChanged();
- } // OnPropertyChanged needed/okay/bad?
- }
- private ObservableCollection<Item> _ItemsOC;
- public ObservableCollection<Item> ItemsOC
- {
- get { return _ItemsOC; }
- set
- {
- if (_ItemsOC == value) return;
- _ItemsOC = value;
- OnPropertyChanged();
- }
- }
- public event PropertyChangedEventHandler PropertyChanged;
- protected void OnPropertyChanged([CallerMemberName] string propertyName = "")
- {
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- }
- }
- public ObservableCollection<Item> ItemsOC { get; set; }
- Item OneItem { get; set; }
- Item OneMini { get; set; }
- Item ItemMaybe { get; set; }
- string Q;
- MyTable tbl;
- int MiniIndex = 0;
- ViewModels.MyViewModelx vmx;
- MyViewModel vm;
- public NewPage1()
- {
- InitializeComponent();
- vmx = new ViewModels.MyViewModelx();
- BindingContext = vmx;
- vmx.theDate = DateTime.Today;
- vmx.anInt = 1234;
- vm = new MyViewModel();
- BindingContext = vm;
- Setup();
- }
- void Setup()
- {
- int hjkl = vmx.anInt+5432; // for debug only
- Q = "SELECT AcctName, AcctBalance FROM Assets;";
- tbl = new(Q);
- int NumRows = tbl.numRows; //3
- int NumCols = tbl.numCols; //2
- ItemsOC = new();
- BindingContext = this;
- for (int i = 0; i < NumRows; i++)
- {
- OneItem = new();
- string[] aRow = tbl.GetRow(i);
- OneItem.acct = aRow[0];
- OneItem.amount = Convert.ToDecimal(aRow[1]);
- OneItem.tag = i;
- ItemsOC.Add(OneItem);
- }
- MiniIndex = -1; // ** gray out
- SetButtonsVisible(); // ** buttons
- }
- private void MiniView_SelectionChanged(object s, EventArgs e)
- {
- if (MiniView.SelectedItem is null) return;
- OneMini = (Item)MiniView.SelectedItem;
- int tag = OneMini.tag;
- int index = ItemsOC.IndexOf(ItemsOC.Where
- (X => X.tag == tag).FirstOrDefault());
- if (index == -1)
- {
- return; // trap this line for debug
- }
- // index is valid
- MiniIndex = index;
- SetButtonsVisible(); // up/down/remove
- } // END MiniView_SelectionChanged(object s, EventArgs e)
- void click(object sender, EventArgs e)
- {
- int c = ItemsOC.Count;
- if (c < 1) return;
- // swap bottom to top
- ItemsOC.Move(c - 1, 0);
- // reverse the above
- ItemsOC.Move(0, c - 1);
- }
- void SetButtonsVisible()
- {
- // Color LiteGrey = Color.FromRgb(64,64,64);
- // Color std = Color.FromRgb(0,0,128);
- bool up = true;
- bool down = true;
- bool top = true;
- bool del = true;
- int max = ItemsOC.Count - 1;
- if (max <= 0 || MiniIndex < 0)
- {
- up = false;
- down = false;
- top = false;
- del = false;
- }
- if (MiniIndex == 0) up = top = false;
- if (MiniIndex == max) down = false;
- bUp.IsEnabled = up;
- bDwn.IsEnabled = down;
- bDel.IsEnabled = del;
- bTop.IsEnabled = top;
- }
- void clickDown(object s, EventArgs e)
- {
- ItemsOC.Move(MiniIndex, MiniIndex+1);
- MiniIndex++;
- MiniView.SelectedItem = ItemsOC[MiniIndex];
- SetButtonsVisible();
- }
- void clickToTop(object s, EventArgs e)
- {
- ItemsOC.Move(MiniIndex, 0);
- MiniIndex = 0;
- MiniView.SelectedItem = ItemsOC[MiniIndex];
- SetButtonsVisible();
- }
- void clickDelete(object s, EventArgs e)
- {
- ItemsOC.RemoveAt(MiniIndex);
- MiniIndex = -1;
- SetButtonsVisible();
- }
- void clickUp(object s, EventArgs e)
- {
- ItemsOC.Move(MiniIndex, MiniIndex-1);
- MiniIndex--;
- MiniView.SelectedItem = ItemsOC[MiniIndex];
- SetButtonsVisible();
- }
- } // END partial class NewPage1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement