Files
GazpromApp/ViewModels/MainWindowViewModel.cs
T
2025-07-02 16:01:42 +03:00

45 lines
1.1 KiB
C#

using CommunityToolkit.Mvvm.ComponentModel;
using GazpromApp.Messages;
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
using System.Collections.ObjectModel;
using System.Threading.Tasks;
using GazpromApp.Models;
namespace GazpromApp.ViewModels;
public partial class MainWindowViewModel : ViewModelBase
{
public ObservableCollection<PointViewModel> Points { get; } = [];
[RelayCommand]
private async Task AddPoint()
{
var point = await WeakReferenceMessenger.Default.Send(new NewPointMessage());
if (point != null)
Points.Add(point);
IsLineVisible = Points.Count > 0;
}
[RelayCommand]
private async Task EditPoint(PointViewModel point)
{
PointViewModel p = await WeakReferenceMessenger.Default.Send(new EditPointMessage(point)) ?? point;
Points[Points.IndexOf(point)] = p;
}
[RelayCommand]
private void RemovePoint(PointViewModel point)
{
Points.Remove(point);
IsLineVisible = Points.Count > 0;
}
// Visual properties
[ObservableProperty]
private bool _isLineVisible;
}