// This file is part of the Noddybox.WindowsPhone C# suite. // // Noddybox.Emulation is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Noddybox.Emulation is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Noddybox.Emulation. If not, see . // // Copyright (c) 2012 Ian Cowburn // using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using System.ComponentModel; namespace Noddybox.WindowsPhone.Silverlight.ViewModels { /// /// Provides a base for view models. /// public class BaseViewModel : INotifyPropertyChanged { #region SetValue /// /// Sets a value in the model. /// /// The type of the value. /// A reference to the member variable. /// The new value. /// The propertys to change if the value has changed. protected void SetValue(ref T member, T value, params string[] names) { if (!value.Equals(member)) { member = value; foreach (string name in names) { NotifyPropertyChanged(name); } } } #endregion #region Notify /// /// Notifies handlers of a property change. /// /// The property's name. protected void NotifyPropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } #endregion #region INotifyPropertyChanged Members public event PropertyChangedEventHandler PropertyChanged; #endregion } }