MVVMに続くダイアログウィンドウを表示するには、いくつかの良いアプローチについて多くの質問があります。しかし、私はGjallarhornが違って見える。Gjallarhornでダイアログウィンドウを表示するには、どのような方法が適していますか?
私はいくつかのダイアログを表示する必要があります。たとえば、ダイアログごとに1つのアクションがあります。
type Action =
|Show
|Open
|Input
|Change
|Statistic
や窓のカップル
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.私は理由を知らないが、私はその仕事のためのよりクリーンな解決策を感じている。