问题标签 [elmish-wpf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
199 浏览

f# - 在 FsXaml 和 ElmishWPF 中更新 ProgressBar.Value

我正在尝试更新FsXaml 中的ProgressBar.Value。在 C# 中,我使用了下面提到的代码。我没有尝试在 F# 中实现 C# 方法,因为使用公共字段 ( myCaller ) 在我看来并不是一种功能方法(更不用说我不知道​​是否可以使用这个 C# F# 中的方法)。

我的问题是:F#(FsXaml/code behind)中用于更新ProgressBar.Value的最佳(或至少是好的)功能方法是什么?

编辑1:

删除了不相关的代码和文本。那些对 Elmish.WPF 不感兴趣的人请等到出现与 FsXaml 相关的答案。

编辑2:

埃尔米什.WPF

我尝试使用 Bent Tranberg 的评论和答案以及他出色的示例代码来处理ProgressBar问题。我的改编适用于for-loop,但不适用于List.map(i)/iter(i),这是我实际上需要进度条的集合函数。这是简化的代码:

文件:MainWindow.fs

即使将“i”索引与进度条值绑定对于 MainWindow 中的集合功能有效,它也不能解决问题。在现实生活中,用于处理进度条值的集合函数位于主窗口文件“上方”的其他文件中。像这样:

文件:MainLogicRight.fs

我知道(可能)无法将 pb 值与非索引函数(例如Array.collect )绑定。但重要的是 - 如何将 pb 值与List/Array.mapi/iteri 在本例中为 Array.Parallel.mapi)中的“i”索引绑定?

编辑3:

根据 Bent 的最后一个答案,我现在不相关的文本和评论已被删除。一个基于答案的例子是here