-
Notifications
You must be signed in to change notification settings - Fork 0
/
ViewModel.cs
46 lines (42 loc) · 1.16 KB
/
ViewModel.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
using System.Diagnostics;
using System.Windows;
namespace Rikrop.Core.Wpf.Mvvm
{
public class ViewModel : ChangeNotifier, IViewModel
{
private FrameworkElement _content;
public virtual FrameworkElement Content
{
get { return _content; }
set
{
if (!Equals(_content, value))
{
_content = value;
if (_content != null)
{
_content.DataContext = this;
}
NotifyPropertyChanged(() => Content);
}
}
}
~ViewModel()
{
Debug.WriteLine("'{0}'({1}) was disposed.", GetType().Name, GetHashCode());
}
}
public abstract class ViewModel<TView> : ViewModel
where TView : FrameworkElement, new()
{
public TView TypedContent
{
get { return (TView)Content; }
}
public override FrameworkElement Content
{
get { return base.Content ?? (base.Content = new TView()); }
set { base.Content = value; }
}
}
}