using System; using System.Collections.Generic; using System.Linq; using Avalonia; using Avalonia.Controls; using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; using Presence.Desktop.Models; using Presence.Desktop.ViewModels; using ReactiveUI; namespace Presence.Desktop.Views; public partial class PresenceView : ReactiveUserControl { public PresenceView() { this.WhenActivated(disposables => { }); AvaloniaXamlLoader.Load(this); } private void OnDataGridSelectionChanged(object sender, SelectionChangedEventArgs e) { if (this.DataContext is PresenceViewModel viewModel) { // Обновляем выделенные элементы в ViewModel viewModel.SelectedItems.Clear(); foreach (var item in e.AddedItems.OfType()) { viewModel.SelectedItems.Add(item); } } } private void DatesChanged(object sender, SelectionChangedEventArgs e) { Calendar cal = (Calendar)sender; if (this.DataContext is PresenceViewModel viewModel) { if (viewModel.SelectedDate == null) { viewModel.SelectedDate = new List(); } viewModel.SelectedDate.Clear(); foreach (var date in cal.SelectedDates) { viewModel.SelectedDate.Add(date); viewModel.FilterAttendanceRecords(); } } } }