1 //----------------------------------------------------------------
2 // <copyright company="Microsoft Corporation">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 //----------------------------------------------------------------
7 namespace System.Activities.Presentation.View
10 using System.ComponentModel;
11 using System.Diagnostics.CodeAnalysis;
13 using System.Windows.Controls;
15 internal partial class VersionEditor : UserControl, IVersionEditor
17 private static DependencyProperty versionProperty = DependencyProperty.Register("Version", typeof(Version), typeof(VersionEditor), new PropertyMetadata(new PropertyChangedCallback(VersionEditor.OnVersionChanged)));
18 private static DependencyProperty viewModelProperty = DependencyProperty.Register("ViewModel", typeof(VersionEditorViewModel), typeof(VersionEditor));
20 [SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors",
21 Justification = "This value must be set in contructor to ensure that ViewModel could be used")]
22 public VersionEditor()
24 this.InitializeComponent();
25 this.ViewModel = new VersionEditorViewModel(this);
26 this.ViewModel.PropertyChanged += this.OnViewModelPropertyChanged;
29 public static DependencyProperty VersionProperty
31 get { return versionProperty; }
34 public Version Version
36 get { return (Version)GetValue(VersionProperty); }
37 set { SetValue(VersionProperty, value); }
40 private static DependencyProperty ViewModelProperty
42 get { return viewModelProperty; }
45 private VersionEditorViewModel ViewModel
47 get { return (VersionEditorViewModel)GetValue(ViewModelProperty); }
48 set { SetValue(ViewModelProperty, value); }
51 void IVersionEditor.ShowErrorMessage(string message)
53 ErrorReporting.ShowErrorMessage(message);
56 private static void OnVersionChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
58 ((VersionEditor)sender).OnVersionChanged(e);
61 private void OnVersionChanged(DependencyPropertyChangedEventArgs e)
63 this.ViewModel.Version = (Version)e.NewValue;
66 private void OnViewModelPropertyChanged(object sender, PropertyChangedEventArgs e)
68 if (e.PropertyName == "Version")
70 this.Version = this.ViewModel.Version;