【问题标题】:How to use F# types from C# wpf application如何在 C# wpf 应用程序中使用 F# 类型
【发布时间】:2012-11-09 08:04:32
【问题描述】:

在 F# 中,我的代码结构如下:

module MyNS.MyModule

type SomeType =
    member x.value = "some value"

用代码命名为MyNs 进行组装。我从 C# WPF 应用程序中引用它并在 XAML 中执行相同操作:

<UserControl x:Class="WpfTest"
             xmlns:data="clr-namespace:MyNS;assembly=MyNs">

然后我尝试在DataTemplate 中使用SomeType

<DataTemplate DataType="{x:Type data:MyModule.SomeType}">

但是有一个关于缺少类型的错误。

【问题讨论】:

  • 其实,另一个问题是你的。它们有什么区别?
  • 您遇到的具体错误是什么?
  • 我的另一个问题没有指定我想使用模块中的 F# 类型。人们发现了其他错误,而不是我在这里问的问题。据我所知,这个关于使用 C# 中由公共类表示的 F# 模块中的类型的问题。
  • @svick,错误 1 ​​类型引用找不到名为“ViewModel.TestResultModel”的公共类型。第 825 行位置 93. D:\dev\ATPC\ATCheckerView\TestsPropagate.xaml 825 93 ATCheckerView

标签: c# wpf f#


【解决方案1】:

我认为它应该如下所示,嵌套类使用 MyModule+SomeType 而不是 MyModule.SomeType

<UserControl x:Class="WpfTest"
             xmlns:data="clr-namespace:MyNS;assembly=MyNs">

<DataTemplate DataType="{x:Type data:MyModule+SomeType}">

找到它here on SO

【讨论】:

  • 错误 2 未定义的 CLR 命名空间。 “clr-namespace” URI 指的是程序集中未包含的命名空间“ATChecker.ViewModel”。 D:\dev\ATPC\ATCheckerView\TestsPropagate.xaml 4 25 ATCheckerView
  • 因为 MyModule 不是命名空间,它就像 C# 公共类
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-15
  • 2010-09-23
相关资源
最近更新 更多