也许你可以让你的日志内容IObservable并让你的 UI 订阅它的变化?
另一种选择是实现INotifyPropertyChanged并使用 PropertyChangedEventHandler 来通知更改。
这是一个代码片段,向您展示如何使用 NotifyPropertyChanged 进行操作:
using System.ComponentModel;
public class YourClass : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
protected void AddLogLine(String log)
{
// do your process
NotifyPropertyChanged("Log");
}
}
要注册更改,您只需执行以下操作(在您的 UI 构造函数中):
YourClassInstance.PropertyChanged += new PropertyChangedEventHandler(MyFunctionToHandleLogChanges);
注意:如果您更改 YourClassInstance,请确保正确删除并再次添加处理程序
然后更新您的 UI,再次在您的 UI 类中:
void MyFunctionToHandleLogChanges(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == "Log")
{
// Update UI
}
}