我是 F# 的新手。我最近了解到 Elmish.wpf 和 MVU 设计。我正在使用的应用程序采用 C# WPF 编写,具有许多 WPF 用户控件、自定义控件和窗口。看来 Elmish.wpf 将视图模型的概念扁平化为单个数据上下文。(?)。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
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?我是不是找错了树?
提前致谢。
我在主窗口中有一个复杂的 WPF Tab 控件,全部使用 C#,使用 .NET Framework。主窗口提供一致的主菜单和包含选项卡控件的内容控件。
选项卡控件的每个选项卡使用特定于每个用户控件的视图模型呈现不同的用户控件。
在深入研究之前,我需要知道 Elmish.WPF 是否可以为这种情况提供适当的 F# 支持。
在研究这些示例时,到 Elmish.WPF 的关键切换似乎发生在:
Program.mkSimpleWpf App.init App.update bindings
Run Code Online (Sandbox Code Playgroud)
一旦出现主窗口和第一个选项卡,init、update 和 bindings 是否可以区分并允许用户在选项卡之间切换?如果是这样,新的选项卡状态是否可以“输入”到 Elmish.WPF 中?
任何帮助或建议将不胜感激。
TIA
(更复杂的是,其中一个选项卡显示了一个带有自定义装饰器的数据网格,用于列表操作)。