【发布时间】:2015-12-17 11:34:42
【问题描述】:
我正在使用 wpf 用 c# 编写一个简单的游戏。在我的 xaml.cs 中,我创建了一个完成所有工作的 Game 对象。
我需要能够在 Game 对象中的某个 propertyChange 上重新加载窗口。我的 xaml 中已经有了这个:
<TextBlock x:Name="PhaseTB" Text="{Binding Phase, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center"/>
Phase 是 Game 对象的一部分:
public class Game : INotifyPropertyChanged
{
private static Game _instance;
private GamePhase phase;
public static Game Instance
{
get
{
if (_instance == null)
_instance = new Game(10, 10);
return _instance;
}
}
public GamePhase Phase
{
get { return phase; }
set
{
phase = value;
OnPropertyChanged("Phase");
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
一切正常,文本框根据相位值更新。
我的问题是:当 Phase 值发生变化时,如何调用方法?文本更改得很好,但我不知道如何调用代码隐藏方法。
(对不起,菜鸟问题。我继承了代码,并不太了解整个事情是如何工作的)
【问题讨论】:
-
在 Phase setter 中你可以调用你的方法...
-
@Pikoh 仅当方法是静态的(因为我要调用的方法在 MainWindow 类中并且我没有要引用的对象)