Ben*_*sen 5 wpf recursion f# class
我有一个带有视图模型类的F#WPF应用程序.这些类需要公开才能在XAML中用作数据类型.
问题是,当使用F#类型的递归(和)时,似乎无法访问从属类型 - 或者它们看起来不是.也就是说,给出这个例子:
type Foo () =
member this.Bar = new Bar()
and Bar () =
member this.Foo = new Foo()
Run Code Online (Sandbox Code Playgroud)
然后在XAML中无法访问Bar.
我试图用公共和Bar加上Foo的前缀.我也尝试创建一个同义词.这些变化都没有解决问题.
这真的是它的工作原理还是我"做错了"?如果它是它的工作方式,那么我可以强制下属类型(在示例中为Bar)是公共的吗?
谢谢!:-)
更新1:仔细检查(dotPeek),似乎访问是相同的.F#编译器创建一个静态外部类Foo和一个嵌套类Foo.Bar也是如此.它们都标记为公开.现在我很困惑为什么不能从XAML中访问Bar.
更新2:解决了.WPF不喜欢受歧视的工会.一个或多个从属类型使用有区别的联合,并防止它被用于XAML数据绑定.