我是 F# 的新手。我最近了解了 Elmish.wpf 和 MVU 设计。我正在使用的应用程序是 C# WPF,带有许多 WPF 用户控件、自定义控件和窗口。 Elmish.wpf 似乎将 View 模型的概念扁平化为单个数据上下文。 (??)。 Elmish.wpf 可以与多个窗口、用户控件和自定义控件一起使用吗? (这里的“多个”是指大约 20 个窗口、用户控件和自定义控件。)
如果是这样,是否有这样的例子?
在查看 Elmish.wpf 网页时,似乎所有窗口都需要在初始化时创建--
let main mainWindow (createWindow1: Func<#Window>) (createWindow2: Func<#Window>) =
let createWindow1 () = createWindow1.Invoke()
let createWindow2 () =
let window = createWindow2.Invoke()
window.Owner <- mainWindow
window
let bindings = App.mainBindings createWindow1 createWindow2
Program.mkSimpleWpf App.init App.update bindings
|> Program.withConsoleTrace
|> Program.runWindowWithConfig
{ ElmConfig.Default with LogConsole = true; Measure = true }
mainWindow
有一个更好的方法吗?我是不是叫错了树?提前致谢。
最佳答案
是的,Elmish.WPF 绝对支持多个窗口和用户定义的控件。
很多samples in the Elmish.WPF repo以一种或另一种方式证明这一点。例如,NewWindow
示例演示了如何打开新窗口,以及 SubModel
(以及许多其他人)示例演示了如何使用自定义 UserControl
s。 SubModelSeq
样本是目前最复杂的一个,展示了任意深度的递归树UserControl
s。
所有这些也在 the official Elmish.WPF tutorial 中有所描述。 .
(以供将来引用, this is the current commit at the time of writing ;样本可能从那时起发生了变化。)
关于f# - 如何使用 Elmish.wpf 和 F# 管理多个窗口、用户控件和自定义控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63333098/