📄
src/App/Views/Panels/SmhiPanel.axaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System; using System.Globalization; using Avalonia; using Avalonia.Controls; using Avalonia.Data.Converters; using MMirror.App.ViewModels.Panels; using MMirror.Integrations.Smhi; namespace MMirror.App.Views.Panels; public partial class SmhiPanel : UserControl { public SmhiPanel() { InitializeComponent(); } protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) { base.OnAttachedToVisualTree(e); if (DataContext is SmhiPanelViewModel vm) { vm.SubscribeToUpdates(); } } protected override void OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs e) { if (DataContext is SmhiPanelViewModel vm) { vm.UnsubscribeFromUpdates(); } base.OnDetachedFromVisualTree(e); } } public sealed class WeatherSymbolIconConverter : IValueConverter { public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) => value is WeatherSymbol symbol ? $"avares://MMirror.App/Assets/smhi/{(int)symbol}.svg" : null; public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => throw new NotSupportedException(); }