今天再可停靠窗口进行点击按钮从而再DataGrid
中上传数据时,发现多次上传会出现问题某个 ItemsControl 与它的项源不一致,后来再查问题时发现是因为由于有多线程异常导致的问题。
原因应该是可停靠面板与Revit本身时两个进程,再主进程与窗口之间进行数据传递导致进程错误,从而引发的问题。
private ObservableCollection<ExternalProperity.ProjectMessageClass> _messages = new ObservableCollection<ExternalProperity.ProjectMessageClass>();
void UpdateItems(ExternalProperity.ProjectMessageClass message)
{
Dispatcher.BeginInvoke(DispatcherPriority.Background, new ParameterizedThreadStart(AddItem), message);
}
void AddItem(object message)
{
_messages.Add((ExternalProperity.ProjectMessageClass)message);
}