这是我在MainPage.xaml.cs
中的代码public MainPage()
{
InitializeComponent();
DispatcherTimer dt = new DispatcherTimer();
dt.Interval = new TimeSpan(0, 0, 0, 0, 1000); // 1 Second
dt.Tick += new EventHandler(dtTick);
}
现在,我有MainPage Constractor和dtTick EventHandler来进行SOMETHING,还有一个EventHandler用于启动按钮以使Timer工作
void dtTick(object sender, EventArgs e)
{
var time = DateTime.Parse(theTimer.Text);
time = time.AddSeconds(1);
theTimer.Text = time.ToString("HH:mm:ss");
}
private void startButton_Click(object sender, RoutedEventArgs e)
{
dt.Start();
}
所以我的问题是如何使 dt.Start(); 工作,因为它是一个调用位于我的MainPage()中的对象的方法。
答案 0 :(得分:2)
你无法以这种方式工作 - 构造函数中声明的dt
仅限于构造函数,因此无法在其外部访问。
您需要做的是在模块级别声明dt
,然后您可以在MainPage.xaml.cs中的任何位置访问它:
public class MainPage
{
private DispatcherTimer _dt;
public MainPage()
{
_dt = new DispatcherTimer();
}
private void startButton_Click(object sender, RoutedEventArgs e)
{
_dt.Start();
}
}
答案 1 :(得分:1)
在您的代码隐藏文件中,将Timer公开为公共/受保护或私有成员或字段。
private DispatcherTimer dt = null;
public MainPage()
{
InitializeComponent();
this.dt = new DispatcherTimer();
this.dt.Interval = new TimeSpan(0, 0, 0, 0, 1000); // 1 Second
this.dt.Tick += new EventHandler(dtTick);
}
private void startButton_Click(object sender, RoutedEventArgs e)
{
if (this.dt != null)
this.dt.Start();
}