【问题标题】:Calling winforms hosting Wpf grid cause error调用托管 Wpf 网格的 winforms 导致错误
【发布时间】:2017-09-21 21:10:50
【问题描述】:

我有一个用作服务的 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 网格,但我得到了同样的错误

【问题讨论】:

    标签: wpf vb.net elementhost


    【解决方案1】:

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

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

    【讨论】:

    • 我的表单只是一个winforms,有一个elementHost,在elementHost中是一个wpf网格。后面没有代码
    猜你喜欢
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多