2

我试图使用FSharp.Chartingin添加折线图MainWindow。在 MainViewModel 我有 -

let chart = Chart.Line [ for i in 0 .. 10 -> (i, i * i) ]
let control = new ChartControl(chart)
member self.LineChart = control

在 xaml -

<WindowsFormsHost Child="{Binding LineChart}" />

当我启动应用程序时,我会得到XamlParseException以下附加信息 -

'Cannot create unknown type '{http://schemas.microsoft.com/winfx/2006/xaml/presentation}WindowsFormsHost'.' Line number '20' and line position '10'.

如何解决问题?


这是@Foggy Finder。我已经删除了几行定义 TextBlock 和 Buttons。

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"   
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"   
xmlns:local="clr-namespace:ViewModels;assembly=AsyncFS"
xmlns:fsxaml="http://github.com/fsprojects/FsXaml"
Title="MVVM and XAML Type provider" Height="200" Width="400">
<Window.DataContext>
    <local:MainViewModel/>
</Window.DataContext>
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
    </Grid.RowDefinitions>
    <WindowsFormsHost Child="{Binding LineChart}" />
</Grid>
4

1 回答 1

0

为了使用WinfowsFormsHost,您需要添加对WindowsFormsIntegration. 但如果你这样做,你会得到:

不能在“WindowsFormsHost”类型的“子”属性上设置“绑定”。只能在 DependencyObject 的 DependencyProperty 上设置“绑定”。

修复的简单方法是直接创建对象:

<ContentControl Content="{Binding LineChart}" />

...

member self.LineChart = new WindowsFormsHost(Child = control)

结果:

在此处输入图像描述

于 2016-12-01T00:33:25.637 回答