F# and MVVM Light Toolkit Sample Application

MVVM Light Toolkitを使ってViewModelとModelをF#で記述した足し算を行うだけのシンプルなアプリケーションの実装例です。サンプルアプリケーションは以下のような形のものになります。以下に、サンプルに含まれるプロジェクトの概要を示します。 Okazuki.Fsharp.Mvvmプロジェクト(C#)F#でのViewModelの定義を楽にするためのヘルパークラスを定義したViewModelの基本クラスを定義しています。 Okazuki.Fsharp.Mvvm.Sample(C#)MVVM Light Toolkitをベースにしたプ

 
 
 
 
 
(0)
250 times
Add to favorites
6/21/2011
E-mail Twitter del.icio.us Digg Facebook

Solution explorer

C#, F#
namespace Okazuki.Fsharp.Mvvm.ViewModel

open Okazuki.Fsharp.Mvvm
open GalaSoft.MvvmLight.Command
open System.Windows

/// MainWindowのViewModel
type MainViewModel() =
    inherit FsViewModelBase()

    let mutable lhs = 0
    let mutable rhs = 0
    let mutable answer = 0
    let mutable addCommand = null

    /// 左辺値を取得または設定します
    member x.Lhs 
        with get() = lhs
        and set v = x.SetAndNotify(&lhs, v, "Lhs")

    /// 右辺値を取得または設定します
    member x.Rhs
        with get() = rhs
        and set v = x.SetAndNotify(&rhs, v, "Rhs")

    /// 計算結果を取得または設定します
    member x.Answer
        with get() = answer
        and set v = x.SetAndNotify(&answer, v, "Answer")

    /// 足し算コマンドを取得します
    member x.AddCommand
        with get() = x.GetOrCreateCommand(
                        &addCommand, 
                        x.AddExecute)

    /// 足し算ロジックを呼び出します。
    member private x.AddExecute() =
        // Modelのメソッドへ委譲
        x.Answer <- Calc.add lhs rhs