F#WPF在构造函数之后设置对象的成员值

时间:2013-11-16 21:40:22

标签: wpf f#

我之前遇到过这个问题,当我尝试设置WPF窗口的高度时,它会给我这个错误:

unexpected identifier in member definition

我通过在构造函数中设置所有成员的值来找到解决方法。

我的旧代码看起来像这样:

module UI=

    type Display () = 

       let window = new Window()
       window.Height <- 600

我这样做是为了工作:

module UI=

    type Display () = 

    let window = new Window(Height = 600.00, Width = 800.00)

但我不禁想知道是否有某种方法可以设置 高度(或其他成员)在调用窗口构造函数后?

我说这是因为。运算符对我来说非常有用,因为我还在学习.NET框架,我不知道特定类的所有成员。我宁愿使用。运营商浏览其成员,看看我是否错过了什么,而不是在线访问MSDN。另外,如果我在构造函数中设置了很多成员值,则难以阅读。

我是否需要将窗口声明为可变?

1 个答案:

答案 0 :(得分:2)

实际上经过一些仔细的研究。我发现我需要做一个绑定。

在MSDN上明确说明here

  

do绑定与let绑定一起或在绑定之后但在类定义中的成员定义之前出现。尽管do关键字对于模块级别的do绑定是可选的,但在类定义中对do绑定不是可选的。

即使具有main方法的类似乎不需要它们,但是其他类也需要它们。

module UI=

    type Display () = 

        let window = new Window()
        do window.Height <- 600.00
           window.Width <- 800.00

请记住,执行任何其他代码也必须使用do缩进,例如window.Width&lt; - 800.00 is。