51 lines
1.5 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
} |