鼠标,如你所知,是一个静态类。它有一个名为Mouse.Position
的静态属性。该属性动态更新(绑定到鼠标,也许??)。 (我已阅读msdn中的鼠标文档)如何让更新自己的静态类? (类似于鼠标)
我需要使用此方案构建相同的类。
我正在制作一个应用程序,它能够拥有多个页面,并且每个页面都是共享的,例如Margin
的值。
是有2个选项(我认为)做到这一点:
- 请在“页面”类中的字段,并通过构造函数传递值(最简单的)
- 静态类,类似
Mouse.Position
使用,但是,在这种情况下,例如,PageInformation.Margin
(PageInformation
是一类,而不是财产,也不是场)
我倾向于第二种选择,因为它更容易调试(我猜),并进行页面一流的清洁程序,无代码,并在更新过程中更轻松如果边缘以某种方式改变了用户..
任何人都知道该怎么做? (mvvm首选)
谢谢。
更新: P.S.我已经了解基本的MVVM的做法(INPC和这样)
这是一般的代码在我的应用至今:
public class ViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
...
}
public class SheetPage : ViewModel
{
...
}
这是一个关于体系结构的问题,还是你想知道如何实现'INotifyPropertyChanged'? - 第一:我不认为将页面边距作为全局变量是一个好主意,为什么这应该更容易调试?全局变量往往会使得理解和调试更加困难 – Carsten 2014-09-04 05:34:46
我认为它更多的是关于架构。 Idk关于全局变量tbh。 “Mouse.Position”也是如此吗? – 2014-09-04 05:36:49
你不知道?即使在鼠标的例子中,如果这是一个很好的面向对象设计的话,你可能会争辩(有点基于观点) - 但至少你曾经在系统中只有一个鼠标指针 - 触摸改变了这一点。 – Carsten 2014-09-04 05:39:17