我在拨动开关事件中有这个 LevelPage.change_color()= this.ChangeColorToggle.IsOn;
我从另一个名为LevelPage的页面中使用以下代码提取方法 Moving_Ellipse.Fill = new SolidColorBrush(Colors.Black);
我希望切换开关甚至处理程序来访问该方法,但它会说它需要一个非静态方法的对象。我对这些东西很陌生,有人可以帮助我吗?
答案 0 :(得分:0)
class Human {
public static readonly string SpeciesName = "Homo sapiens";
private string Name { get; set; }
}
静态意味着属于一个类,本质上。例如,人类的物种名称是"智人"。这与非静态(或实例)属性Name形成对比。人类是人类的一个实例,可以有一个名字。名为Bob的类人类的实例是有意义的;具有静态名称Bob的Human类将是......有趣的。
2个推荐选项:Reference
就个人而言,我更喜欢第二种选择。我通常有一个名为Model的对象,它包含我所有应用程序的持久状态。我将我唯一的Model实例存储为App类的静态属性。
例如,让我们在第1页说用户必须选择红色或蓝色。 Page2将是那种颜色。所以代码就像:
class App : Application {
public static Model GlobalModel { get; set; }
//...
}
class Model {
public Color UserSelectedColor { get; set; }
}
class Page1 {
//...
private void StoreSelectedColor(Color selectedColor) {
App.GlobalModel.UserSelectedColor = selectedColor;
}
//...
}
class Page2 {
//...
private Color GetSelectedColor() {
return App.GlobalModel.UserSelectedColor;
}
//...
}