我是Xamarin.iOS编程的新手,如果这很明显,请原谅我。
我有一个在主应用程序中运行的计时器。除其他外,我需要它来更新Main.storyboard 中的字段
在Main.cs:
public static void StartTimer()
{
DateTime startTime;
startTime = DateTime.UtcNow;
var dispatcherTimer = new System.Threading.Timer(DispatcherTimer_Tick, startTime, 0, 100);
}
public static void DispatcherTimer_Tick(object state)
{
GetTime();
ViewController.SetFieldsTick(Vars.dcounter));
}
在ViewController中,我有一个更新屏幕的例程:
public static void SetFieldsTick(int tick)
{
switch (tick)
{
case 0: // Display the Time data
{
UTC_Data.Text = Vars.DateStrZ;
}
}
}
如果我声明SetFieldsTick为静态,那么我会得到消息
非静态字段需要对象引用…
用于我尝试更新的每个标签。
如果我不将其声明为静态,那么它可以引用标签,但在Main.cs文件中调用它时,我会收到相同的错误消息。
关于如何解决这个问题有什么建议吗?
谢谢,Dan
我想ViewController不是静态的,这就是为什么你不能像那样从它调用函数,不管怎样,你的代码有点难以理解,如果你想用时钟或只是显示时间来构建一个应用程序,看看这个Xamarin。表单示例:
https://learn.microsoft.com/en-us/xamarin/xamarin-forms/xaml/xaml-basics/data-bindings-to-mvvm
多亏了DataBinding,你不需要手动设置UI,你应该尝试一下。