presence_new/Presence.Desktop/Views/PresenceView.axaml.cs

51 lines
1.5 KiB
C#

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<PresenceViewModel>
{
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<PresencePresenter>())
{
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<DateTime?>();
}
viewModel.SelectedDate.Clear();
foreach (var date in cal.SelectedDates)
{
viewModel.SelectedDate.Add(date);
viewModel.FilterAttendanceRecords();
}
}
}
}