Skip to content

Commit 84bceda

Browse files
committed
Moved delete and saved events to ViewModel instead of View
1 parent b6f696a commit 84bceda

File tree

7 files changed

+46
-44
lines changed

7 files changed

+46
-44
lines changed

GHelper/GHelper/View/ApplicationView.xaml.cs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using Windows.Storage;
66
using Windows.Storage.Pickers;
77
using GHelper.Annotations;
8-
using GHelper.Event;
98
using GHelper.View.Dialog;
109
using GHelper.ViewModel;
1110
using GHelperLogic.IO;
@@ -36,25 +35,23 @@ public ApplicationViewModel Application
3635
}
3736
}
3837

39-
public GHubRecordViewModel GHubRecord
38+
public GHubRecordViewModel GHubRecordViewModel
4039
{
4140
get { return Application; }
4241
}
43-
44-
public event UserSavedEvent? UserSaved;
45-
public event UserDeletedRecordEvent? UserDeletedRecord;
42+
4643
public event PropertyChangedEventHandler? PropertyChanged;
4744

4845
public ApplicationView()
4946
{
5047
InitializeComponent();
51-
RecordViewControls.UserClickedSaveButton += () => { UserSaved?.Invoke(); };
52-
RecordViewControls.UserClickedDeleteButton += () => { UserDeletedRecord?.Invoke(GHubRecord); };
48+
RecordViewControls.UserClickedSaveButton += () => { GHubRecordViewModel.FireSaveEvent(); };
49+
RecordViewControls.UserClickedDeleteButton += () => { GHubRecordViewModel.FireDeletedEvent(); };
5350
}
5451

5552
void RecordView.SendRecordChangedNotification()
5653
{
57-
OnPropertyChanged(nameof(GHubRecord));
54+
OnPropertyChanged(nameof(GHubRecordViewModel));
5855
}
5956

6057
protected void HandleNameChange(object sender, RoutedEventArgs routedEventInfo)

GHelper/GHelper/View/DesktopApplicationView.xaml.cs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
using System.ComponentModel;
22
using System.Runtime.CompilerServices;
33
using GHelper.Annotations;
4-
using GHelper.Event;
54
using GHelper.ViewModel;
65
using Microsoft.UI.Xaml;
76
using Microsoft.UI.Xaml.Controls;
@@ -28,27 +27,25 @@ public ApplicationViewModel Application
2827
}
2928
}
3029

31-
public GHubRecordViewModel GHubRecord
30+
public GHubRecordViewModel GHubRecordViewModel
3231
{
3332
get { return Application; }
3433
}
3534

36-
public event UserSavedEvent? UserSaved;
37-
public event UserDeletedRecordEvent? UserDeletedRecord;
38-
3935
public event PropertyChangedEventHandler? PropertyChanged;
4036

4137
public DesktopApplicationView()
4238
{
4339
this.InitializeComponent();
44-
RecordViewControls.UserClickedSaveButton += () => { UserSaved?.Invoke(); };
45-
RecordViewControls.UserClickedDeleteButton += () => { UserDeletedRecord?.Invoke(GHubRecord); };
40+
RecordViewControls.UserClickedSaveButton += () => { GHubRecordViewModel.FireSaveEvent(); };
41+
RecordViewControls.UserClickedDeleteButton += () => { GHubRecordViewModel.FireDeletedEvent(); };
42+
4643
RecordViewControls.DeleteButton.Visibility = Visibility.Collapsed;
4744
}
4845

4946
void RecordView.SendRecordChangedNotification()
5047
{
51-
OnPropertyChanged(nameof(GHubRecord));
48+
OnPropertyChanged(nameof(GHubRecordViewModel));
5249
}
5350

5451
public void ResetAppearance()

GHelper/GHelper/View/MainWindow.xaml.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,11 @@ private void ChangeDisplayedRecord(GHubRecordViewModel gHubRecord, TreeViewNode
144144
LastSelectedRecord = selectedNode;
145145

146146
RecordView view = RecordView.CreateViewForViewModel(gHubRecord);
147-
view.UserSaved += this.UserSaved;
148-
view.UserDeletedRecord += this.UserPressedDelete;
147+
if (view.GHubRecordViewModel is GHubRecordViewModel viewModel)
148+
{
149+
viewModel.UserSaved += this.UserSaved;
150+
viewModel.UserDeletedRecord += this.UserPressedDelete;
151+
}
149152
GHubDataDisplay.Content = view;
150153
}
151154

GHelper/GHelper/View/ProfileView.xaml.cs

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
using System.ComponentModel;
22
using System.Runtime.CompilerServices;
33
using GHelper.Annotations;
4-
using GHelper.Event;
54
using GHelper.ViewModel;
65
using Microsoft.UI.Xaml;
76
using Microsoft.UI.Xaml.Controls;
@@ -29,25 +28,23 @@ public ProfileViewModel Profile
2928
}
3029
}
3130

32-
public GHubRecordViewModel GHubRecord
31+
public GHubRecordViewModel GHubRecordViewModel
3332
{
3433
get { return Profile; }
35-
}
36-
37-
public event UserSavedEvent? UserSaved;
38-
public event UserDeletedRecordEvent? UserDeletedRecord;
34+
}
35+
3936
public event PropertyChangedEventHandler? PropertyChanged;
4037

4138
public ProfileView( )
4239
{
4340
InitializeComponent();
44-
RecordViewControls.UserClickedSaveButton += () => { UserSaved?.Invoke(); };
45-
RecordViewControls.UserClickedDeleteButton += () => { UserDeletedRecord?.Invoke(GHubRecord); };
41+
RecordViewControls.UserClickedSaveButton += () => { GHubRecordViewModel.FireSaveEvent(); };
42+
RecordViewControls.UserClickedDeleteButton += () => { GHubRecordViewModel.FireDeletedEvent(); };
4643
}
4744

4845
void RecordView.SendRecordChangedNotification()
4946
{
50-
OnPropertyChanged(nameof(GHubRecord));
47+
OnPropertyChanged(nameof(GHubRecordViewModel));
5148
}
5249

5350
private void HandleNameChange(object sender, RoutedEventArgs routedEventInfo)

GHelper/GHelper/View/RecordView.cs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System;
2-
using GHelper.Event;
32
using GHelper.ViewModel;
43
using GHelperLogic.Model;
54
using Microsoft.UI.Xaml.Controls;
@@ -29,9 +28,7 @@ public static RecordView CreateViewForViewModel(GHubRecordViewModel gHubRecordVi
2928
}
3029
}
3130

32-
public GHubRecordViewModel? GHubRecord { get; }
33-
public event UserSavedEvent? UserSaved;
34-
public event UserDeletedRecordEvent? UserDeletedRecord;
31+
public GHubRecordViewModel? GHubRecordViewModel { get; }
3532

3633
protected void SendRecordChangedNotification();
3734

@@ -45,11 +42,11 @@ public static void ChangeName(RecordView recordView, object sender)
4542

4643
protected static void ChangeName(RecordView recordView, TextBox textBox)
4744
{
48-
if (textBox.Text != recordView.GHubRecord?.DisplayName)
45+
if (textBox.Text != recordView.GHubRecordViewModel?.DisplayName)
4946
{
50-
if (recordView.GHubRecord != null)
47+
if (recordView.GHubRecordViewModel != null)
5148
{
52-
recordView.GHubRecord.Name = textBox.Text;
49+
recordView.GHubRecordViewModel.Name = textBox.Text;
5350
recordView.SendRecordChangedNotification();
5451
}
5552
}

GHelper/GHelper/View/Utility/GHubItemTemplateSelector.cs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,14 @@ public class GHubItemTemplateSelector : DataTemplateSelector
1212

1313
protected override DataTemplate? SelectTemplateCore(object item)
1414
{
15-
if (item is ApplicationViewModel)
15+
switch (item)
1616
{
17-
return ApplicationTemplate;
18-
}
19-
else if (item is ProfileViewModel)
20-
{
21-
return ProfileTemplate;
22-
}
23-
else
24-
{
25-
throw new ArgumentException("Unknown type of item passed to GHubItemTemplateSelector");
17+
case ApplicationViewModel:
18+
return ApplicationTemplate;
19+
case ProfileViewModel:
20+
return ProfileTemplate;
21+
default:
22+
throw new ArgumentException("Unknown type of item passed to GHubItemTemplateSelector");
2623
}
2724
}
2825
}

GHelper/GHelper/ViewModel/GHubRecordViewModel.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.ComponentModel;
22
using System.Reflection;
33
using System.Runtime.CompilerServices;
4+
using GHelper.Event;
45
using GHelperLogic.Model;
56

67
namespace GHelper.ViewModel
@@ -32,6 +33,9 @@ public State State
3233
}
3334
}
3435

36+
public event UserSavedEvent? UserSaved;
37+
public event UserDeletedRecordEvent? UserDeletedRecord;
38+
3539
public abstract event PropertyChangedEventHandler? PropertyChanged;
3640

3741
public void SaveBackup()
@@ -51,6 +55,16 @@ public virtual void RestoreInitialState()
5155
}
5256
}
5357

58+
public void FireSaveEvent()
59+
{
60+
UserSaved?.Invoke();
61+
}
62+
63+
public void FireDeletedEvent()
64+
{
65+
UserDeletedRecord?.Invoke(this);
66+
}
67+
5468
protected abstract void OnPropertyChanged([CallerMemberName] string? propertyName = null);
5569
}
5670

0 commit comments

Comments
 (0)