用 Gjallarhorn 显示对话 window 的好方法是什么?
What is a good approach to show dialog window with Gjallarhorn?
关于显示对话框 window 遵循 MVVM 的几种好方法存在很多问题。但我看到加拉尔霍恩看起来不一样了。
我必须显示几个对话框,例如每个对话框我有一个动作。
type Action =
|Show
|Open
|Input
|Change
|Statistic
和一对windows
module Views
open FsXaml
...
type StatisticWindow = XAML<"StatWindow.xaml">
type InputWindow = XAML<"InputWindow.xaml">
...
我展示的方式
let showDialog (context:BindingSource) (view : System.Windows.Window) =
view.DataContext <- context
view.ShowDialog() |> ignore
let getViewByAction =
function
|Statistic -> Views.StatisticWindow() :> System.Windows.Window
|Input -> Views.InputWindow() :> System.Windows.Window
| ...
let getContextByAction model =
function
| Statistic -> statContext model
| Input -> inputContext model
| ...
let performAction model action =
let context = getContextByAction model action
getViewByAction action
|> showDialog context
这种方法是否合适?
P.S。我不知道为什么,但我觉得有一个更清晰的任务解决方案。
目前,没有很好的解决方案。应用程序架构(松散地)基于 Elm,它面向单页应用程序,实际上不包括 "custom dialog support."
现在,您使用的方法可能与我推荐的方法相似。
也就是说,我们计划实施完整的导航框架,并且 windows/dialogs 桌面版将在该设计中得到考虑。将来,可能会有专门的指导。
关于显示对话框 window 遵循 MVVM 的几种好方法存在很多问题。但我看到加拉尔霍恩看起来不一样了。
我必须显示几个对话框,例如每个对话框我有一个动作。
type Action =
|Show
|Open
|Input
|Change
|Statistic
和一对windows
module Views
open FsXaml
...
type StatisticWindow = XAML<"StatWindow.xaml">
type InputWindow = XAML<"InputWindow.xaml">
...
我展示的方式
let showDialog (context:BindingSource) (view : System.Windows.Window) =
view.DataContext <- context
view.ShowDialog() |> ignore
let getViewByAction =
function
|Statistic -> Views.StatisticWindow() :> System.Windows.Window
|Input -> Views.InputWindow() :> System.Windows.Window
| ...
let getContextByAction model =
function
| Statistic -> statContext model
| Input -> inputContext model
| ...
let performAction model action =
let context = getContextByAction model action
getViewByAction action
|> showDialog context
这种方法是否合适?
P.S。我不知道为什么,但我觉得有一个更清晰的任务解决方案。
目前,没有很好的解决方案。应用程序架构(松散地)基于 Elm,它面向单页应用程序,实际上不包括 "custom dialog support."
现在,您使用的方法可能与我推荐的方法相似。
也就是说,我们计划实施完整的导航框架,并且 windows/dialogs 桌面版将在该设计中得到考虑。将来,可能会有专门的指导。