Просмотр:
Код: Выделить всё
Код: Выделить всё
using LazyFit.ViewModels.MoodViewModels;
using Microcharts;
namespace LazyFit.Views.Mood;
public partial class MoodChartView : ContentView
{
public static readonly BindableProperty FromProperty = BindableProperty.Create(nameof(From), typeof(DateTime), typeof(MoodChartView), propertyChanged: OnFromToPropertyChanged);
public static readonly BindableProperty ToProperty = BindableProperty.Create(nameof(To), typeof(DateTime), typeof(MoodChartView), propertyChanged: OnFromToPropertyChanged);
public DateTime From
{
get => (DateTime)GetValue(FromProperty);
set => SetValue(FromProperty, value);
}
public DateTime To
{
get => (DateTime)GetValue(ToProperty);
set => SetValue(ToProperty, value);
}
private static void OnFromToPropertyChanged(BindableObject bindable, object oldValue, object newValue)
{
var view = (MoodChartView)bindable;
var viewModel = view.BindingContext as MoodChartViewModel;
if (viewModel != null)
{
viewModel.FromDate = view.From;
viewModel.ToDate = view.To;
view.Chart = viewModel.ChartObject;
}
}
public MoodChartView()
{
InitializeComponent();
BindingContext = new MoodChartViewModel();
}
}
Код: Выделить всё
using CommunityToolkit.Mvvm.ComponentModel;
using LazyFit.Classes;
using LazyFit.Services;
using Microcharts;
using SkiaSharp;
namespace LazyFit.ViewModels.MoodViewModels
{
internal partial class MoodChartViewModel : ObservableObject
{
[ObservableProperty]
private DateTime _FromDate;
partial void OnFromDateChanged(DateTime value)
{
LoadChart();
}
[ObservableProperty]
private DateTime _ToDate;
partial void OnToDateChanged(DateTime value)
{
LoadChart();
}
[ObservableProperty]
private Chart _ChartObject;
public MoodChartViewModel()
{
LoadChart();
}
private async void LoadChart()
{
//...some verified code
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/789 ... ot-binding
Мобильная версия