-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathInspectorService.cs
50 lines (42 loc) · 1.4 KB
/
InspectorService.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
48
49
50
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.ComponentModel.Composition;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace HAF {
[Export(typeof(IInspectorService)), PartCreationPolicy(CreationPolicy.Shared)]
public class InspectorService: Service, IInspectorService {
public IRelayCommand<object> DoSetSelectedItem { get; private set; }
public IRelayCommand DoClearSelectedItem { get; private set; }
private Event<object> onSelectedItemAssigned = new Event<object>(nameof(OnSelectedItemAssigned));
public IReadOnlyEvent<object> OnSelectedItemAssigned => this.onSelectedItemAssigned;
private object selectedItem;
public object SelectedItem {
get => this.selectedItem;
set {
this.SetValue(ref this.selectedItem, value);
this.onSelectedItemAssigned.Fire(value);
}
}
private object selectedSection;
public object SelectedSection {
get => this.selectedSection;
set {
this.SetValue(ref this.selectedSection, value);
}
}
public InspectorService() {
this.DoSetSelectedItem = new RelayCommand<object>(obj => {
this.SelectedItem = obj;
});
this.DoClearSelectedItem = new RelayCommand(() => {
this.SelectedItem = null;
});
}
}
}