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

51 lines
1.5 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
2024-12-26 08:03:24 +00:00
using System.Linq;
2024-12-13 07:21:14 +00:00
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
2024-12-26 08:03:24 +00:00
using Presence.Desktop.Models;
2024-12-13 07:21:14 +00:00
using Presence.Desktop.ViewModels;
using ReactiveUI;
namespace Presence.Desktop.Views;
public partial class PresenceView : ReactiveUserControl<PresenceViewModel>
{
public PresenceView()
{
this.WhenActivated(disposables => { });
AvaloniaXamlLoader.Load(this); }
2024-12-26 08:03:24 +00:00
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();
}
}
}
2024-12-13 07:21:14 +00:00
}