0

我有一个充当服务的 WinForms 应用程序(因此没有实际的 UI),但它是一个 WinForms 应用程序。
在这个应用程序中,我有一个具有 ElementHost 的表单,在 elementHost 中我有一个 WPF 网格。
在我的一门课中,我有以下代码:

Dim frm1 As New frmHostWpfGrid '->HERE I get the error

frm1.WpfGrid.WpfGridControl.BeginDataUpdate()
frm1.WpfGrid.WpfGridControl.ItemsSource = Nothing
frm1.WpfGrid.WpfGridControl.RestoreLayoutFromStream(LayoutStream)
frm1.WpfGrid.WpfGridControl.ItemsSource = mdtData
frm1.WpfGrid.WpfGridControl.EndDataUpdate()

我得到的错误是:
调用线程必须是 STA,因为许多 UI 组件都需要这个。
当我尝试使用 WinForms 表单和网格时,我没有遇到这个问题。

PS1。请注意,我不想显示表单
PS2。我试图在没有表单的情况下直接填充 WPF 网格,我得到了同样的错误

4

1 回答 1

-2

您正在尝试在非 UI 线程上创建 UI 对象。如果没有看到必须在其中设置一些 WPF 元素的表单初始化代码,就很难准确判断是什么导致了错误。

我需要更多地了解 frmHostWpfGrid 才能给你一个准确的答案。

于 2017-09-21T13:10:50.830 回答