各种#Windows (mainWindow、createWindow1和createWindow2)是如何在调用Elmish.WPF NewWindow代码示例Program.fs时作为参数编组的,如下所示.
let main mainWindow (createWindow1: Func<#Window>) (createWindow2: Func<#Window>) =
let logger =
LoggerConfiguration()
.MinimumLevel.Override("Elmish.WPF.Update", Events.LogEventLevel.Verbose)
.MinimumLevel.Override("Elmish.WPF.Bindings", Events.LogEventLevel.Verbose)
.MinimumLevel.Override("Elmish.WPF.Performance", Events.LogEventLevel.Verbose)
.WriteTo.Console()
.CreateLogger()
let createWindow1 () = createWindow1.Invoke()
let createWindow2 () =
let window = createWindow2.Invoke()
window.Owner <- mainWindow
window
let init () = App.init
let bindings = App.bindings createWindow1 createWindow2
WpfProgram.mkSimple init App.update bindings
|> WpfProgram.withLogger (new SerilogLoggerFactory(logger))
|> WpfProgram.startElmishLoop mainWindow???
在.NET,WPF,Elmish.WPF中,什么管道正在组织在NewWindow.Core顶部找到的引用,以便调用F#函数main,并按照正确的顺序排列和传递窗口?
发布于 2022-06-29 14:09:06
当我回答完上面的问题时,我决定了我认为答案是什么。留着这个问题以防对别人有帮助。-RCHF
作为参考,我已经彻底阅读了Elmish.WPF教程。
在得出这个答案时,我发现开始使用Elmish.WPF,第7和第8项很有帮助。
在MainWindow.xaml.cs*must* have aStartElmish`中,具有以下代码…的MainWindow.xaml`` file calls the C# code-behind file…函数
private void StartElmish(object sender, EventArgs e)
{
this.Activated -= StartElmish;
Program.main(MainWindow, () => new Window1(), () => new Window2());
}在这里,您可以看到Elmish.WPF NewWindow代码示例(参见C# XAML)和F#芯中对所有三个窗口的引用被编组到从属F# main函数中。
https://stackoverflow.com/questions/72802621
复制相似问题