0

我有一个具有简单事件的类,但是当事件发生时,应该根据事件参数更改 TextBlock.Text 的订阅方法什么也不做。我不知道为什么会这样?这可能是非常简单的事情,但我找不到答案。

<!-- this is the event of my WordHelper class -->
public delegate void WordHelperHandler(string attempt);
public event WordHelperHandler WordParsed;

<!-- this is excerpt from MainPage class -->
public MainPage()
    {
        InitializeComponent();
        helper = new WordHelper();
        helper.WordParsed += SetText;
        helper.Load(); //this method calls the event
    }
public void SetText(string text)
    {
        PageTitle.Text = text;
    }

4

1 回答 1

1

听起来您的代码基本上在 UI 线程上做了很多工作。在您完成之前,这不会让 UI 响应。

相反,您应该在不同的线程中运行后台任务。然后在您的事件处理程序中,您需要使用Dispatcher来返回 UI 线程以更新文本框:

public void SetText(string text)
{
    Action action = () => PageTitle.Text = text;
    Dispatcher.BeginInvoke(action);
}
于 2013-09-11T20:42:22.710 回答