Die TreeView sieht folgendermaßen aus:
Code: Select all
Code: Select all
using SLP;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Runtime.CompilerServices;
namespace Day_Planner.Models
{
public class ToDoItem : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;
public void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public ToDoItem()
{
Items = [];
}
public ToDoItem(string name)
{
Name = name;
Items = [];
}
public ToDoItem(object parent, string name)
{
Parent = parent;
Name = name;
Items = [];
}
private Object? _Parent;
public Object? Parent
{
get { return _Parent; }
set { _Parent = value; OnPropertyChanged(); }
}
private string _Name = String.Empty;
public string Name
{
get { return _Name; }
set { _Name = value; }
}
private bool _IsComplete;
public bool IsComplete
{
get { return _IsComplete; }
set { _IsComplete = value; OnPropertyChanged(); }
}
public ObservableCollection Items { get; set; }
public override string ToString()
{
return $"{Name}";
}
public Command AddChild => new Command((e) =>
{
Items.Add(new ToDoItem(this,"Untitled"));
});
public Command AddSibling => new Command((e) =>
{
if (e is ToDoItem item)
{
if (item.Parent is ViewModel data)
{
data.Items.Add(new ToDoItem(data,"Untitled"));
}
else if (item.Parent is ToDoItem Parent)
{
Parent.Items.Add(new ToDoItem(Parent,"Untitled"));
}
}
});
public Command DelItem =>  new Command((e) =>
{
if (e is ToDoItem item)
{
if (item.Parent is ViewModel data)
{
data.Items.Remove(item);
}
else if (item.Parent is ToDoItem Parent)
{
Parent.Items.Remove(item);
}
}
});
}
}
 Mobile version
 Mobile version