0

如您所知,鼠标是一个静态类。它有一个名为 的静态属性Mouse.Position。该属性是动态更新的(可能绑定到鼠标??)。(我已经阅读了 msdn 中的鼠标文档)

我需要在这种情况下构建一个相同的类。

我正在制作一个能够有多个页面的应用程序,并且每个页面共享,例如,Margin价值。

有两种选择(我认为)可以做到:

  1. 在“页面”类中创建一个字段,并通过构造函数传递值(最简单)
  2. 静态类,类似于Mouse.Position用法,但是,在这种情况下,例如,PageInformation.MarginPageInformation是类,不是属性也不是字段)

我更喜欢第二个选项,因为它更容易调试(我猜),并且如果用户以某种方式更改了 Margin,则在更新期间使 Page 类更清洁、无代码和更容易..

有人知道该怎么做吗?(首选mvvm方式)

谢谢。

更新: PS 我已经了解基本的 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
{
    ...
}
4

1 回答 1

2

您的班级将是单身人士,因此几乎不可能进行单元测试。这似乎不是一个非常实用的解决方案。

在 WPF 中,您可以将所有页面的所有边距绑定到相同的 ViewModel 属性。这样,当您的 ViewModel 属性更改(假设您正确实施INotifyPropertychanged或使用DependencyProperty)时,您的所有边距也会发生变化。

于 2014-09-04T05:36:45.877 回答