在将按钮的命令绑定到动作之后,我调用一个公开progress事件的对象.
event System.EventHandler<ProgressChangedEventArgs> ProgressChanged
Run Code Online (Sandbox Code Playgroud)
我想以最好的方式在我的XAML中显示它.
一种方法是在我的VM中公开两个可绑定字段
member x.Iteration with get() = _iteration
and set(v:int) = _iteration <- v
x.NotifyPropertyChanged <@this.Iteration@>
member x.IterationVisible with get() = _iterationVisible
and set(v:bool) = _iterationVisible <- v
x.NotifyPropertyChanged <@this.IterationVisible@>
Run Code Online (Sandbox Code Playgroud)
然后我被调用来执行动作我只会更新属性
member x.CompleteInference(algorithm:IGeneratedAlgorithm) =
x.IterationVisible <- true
algorithm.ProgressChanged.Add(fun args -> x.Iteration <- args.Iteration)
algorithm.run()
x.IterationVisible <- false
Run Code Online (Sandbox Code Playgroud)
这导致了两个问题:
是否有一个直接的方式F#揭露progressChanged事件,而无需通过这种中间去Iteration属性,可以通过WPF来处理?它是我们可以得到/做的最具声明性的我们总是要在某个地方存储一些状态吗?
另外,是否有一种自然的方式来完全在XAML中进行 "状态机"绑定?
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |