Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ViewModelBase.cs
- public class ViewModelBase : INotifyPropertyChanged
- {
- #region Implementation of INotifyPropertyChanged
- public event PropertyChangedEventHandler PropertyChanged;
- protected virtual void OnPropertyChanged([CallerMemberName] String propertyName = null)
- {
- if (PropertyChanged != null)
- PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
- }
- protected virtual void OnPropertyChanged(PropertyChangedEventArgs eventArgs)
- {
- if (PropertyChanged != null)
- PropertyChanged(this, eventArgs);
- }
- #endregion
- }
- // WindowViewModel.cs
- public class WindowViewModel : ViewModelBase
- {
- private Window _window;
- public WindowViewModel()
- {
- Window = new Window();
- }
- public WindowViewModel(IntPtr handle)
- : this()
- {
- Handle = handle;
- }
- public WindowViewModel(Int32 handle)
- : this(new IntPtr(handle))
- {
- }
- [Browsable(false)]
- public Window Window
- {
- get { return _window; }
- set
- {
- _window = value;
- Refresh();
- }
- }
- public String Title
- {
- get { return _window.Title; }
- set { _window.Title = value; OnPropertyChanged(); }
- }
- public Boolean IsTopmost
- {
- get { return _window.IsTopmost; }
- set { _window.IsTopmost = value; OnPropertyChanged(); }
- }
- public Int32 X
- {
- get { return _window.Rectangle.X; }
- set { _window.Rectangle = _window.Rectangle.Modify(newX: value); OnPropertyChanged(); }
- }
- public Int32 Y
- {
- get { return _window.Rectangle.Y; }
- set { _window.Rectangle = _window.Rectangle.Modify(newY: value); OnPropertyChanged(); }
- }
- public Int32 Width
- {
- get { return _window.Rectangle.Width; }
- set { _window.Rectangle = _window.Rectangle.Modify(newWidth: value); OnPropertyChanged(); }
- }
- public Int32 Height
- {
- get { return _window.Rectangle.Height; }
- set { _window.Rectangle = _window.Rectangle.Modify(newHeight: value); OnPropertyChanged(); }
- }
- public IntPtr Handle
- {
- get { return _window.Handle; }
- set
- {
- if (_window.Handle == value)
- return;
- _window.Handle = value;
- Refresh();
- }
- }
- public void Refresh()
- {
- OnPropertyChanged(new PropertyChangedEventArgs("Window"));
- OnPropertyChanged(new PropertyChangedEventArgs("Handle"));
- OnPropertyChanged(new PropertyChangedEventArgs("Title"));
- OnPropertyChanged(new PropertyChangedEventArgs("Rectangle"));
- OnPropertyChanged(new PropertyChangedEventArgs("Icon"));
- OnPropertyChanged(new PropertyChangedEventArgs("IsTopmost"));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement