【问题标题】:F# discriminated unions and WPF databindingF# 可区分联合和 WPF 数据绑定
【发布时间】:2012-12-14 13:28:01
【问题描述】:

我有一个带有视图模型类的 F# WPF 应用程序。这些类需要公开才能在 XAML 中用作数据类型。

问题在于,当使用 F# 类型递归 (and) 时,从属类型似乎不可访问 - 或者它们似乎不可访问。也就是说给定这个例子:

type Foo () =

    member this.Bar = new Bar()

and Bar () =

    member this.Foo = new Foo()

那么 Bar 在 XAML 中是不可访问的。

我也尝试在 Foo 前加上 public 和 Bar。我也尝试创建一个同义词。这些更改都没有解决问题。

这真的是它的工作原理还是我“做错了”?如果是它的工作方式,我可以强制从属类型(在示例中为 Bar)公开吗?

谢谢! :-)

更新 1:仔细检查 (dotPeek) 后,访问权限似乎是相同的。 F# 编译器创建一个静态外部类 Foo 和一个嵌套类 Foo。 Bar 也是如此。它们都被标记为公开。现在我很困惑为什么不能从 XAML 中访问 Bar。

更新 2:已解决。 WPF 不喜欢受歧视的工会。一种或多种从属类型使用有区别的联合,这会阻止它用于 XAML 数据绑定。

【问题讨论】:

    标签: wpf class recursion f#


    【解决方案1】:

    WPF 不喜欢受歧视的工会。一种或多种从属类型使用有区别的联合,这会阻止它用于 XAML 数据绑定。不是很明显,但这就是问题所在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-14
      • 2011-11-19
      • 1970-01-01
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 2011-01-03
      相关资源
      最近更新 更多