鼠標,如你所知,是一個靜態類。它有一個名爲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