[概要]コード沈殿仕上げ - DapperのフレームワークMV *モード - Caliburn.Micro

 

 

Caliburn.Micro - XAMLを簡単に。 

ウェブ:  https://github.com/Caliburn-Micro/Caliburn.Micro
文書:  http://caliburnmicro.com/documentation/
nuget:インストール・パッケージCaliburn.Micro

XAMLプラットフォームは、WPF、Silverlightの、WPなど様々なアプリケーションを構築MV *モードをサポートするために使用します


 その他の関連プロジェクトは、参照してくださいコードの沈殿ディレクトリを

重要:プロジェクトのバージョンは、最新の公式バージョンは優先することに注意してください。


 長いブログ投稿の前に、私は一般的に一連の記事を翻訳しますが、原因CMのフレームワークの更新にこれだけ翻訳され、ワー​​ド検索、あまりにも速く、プラス彼は記事の遅すぎる訳であることを主な理由半分以上が、十分な人々が使用しています。この記事では、V2のバージョンを記述し、V3は少し新しい番号になります。しかし、新しいバージョンとの主な用途の古いバージョンでは、ほぼ以下の公式のデモを参照してください。

基本構成、アクションと規則

1. Visual Studioは、クラスライブラリとSystem.Windows.Interactivity.dll CM枠を追加するモード(推奨)またはマニュアルの参照、DLLの道をnuget使用して、ソリューション「Caliburn.Micro.Hello」を作成します。
「MainPage.xamlを」を削除し、以下のいずれかのよう、「App.xaml.cs」を変更します。

コードをコピー
名前空間Caliburn.Micro.Hello { 
    System.Windowsを使用して、

    公共部分クラスアプリ:アプリケーション{ 
        パブリックアプリ(){ 
            のInitializeComponent(); 
        } 
    } 
}
コードをコピー

2. CMフレームワークはまた、最初の「ShellViewModel」と呼ばれるVMを作成し、我々はこれをしなければならない、ビュー・モデル・ファーストの方法を使用することをお勧めします、コードは次のとおりです。

コードをコピー
名前空間Caliburn.Micro.Hello { 
    System.Windowsを使用して、

    パブリッククラスShellViewModel:PropertyChangedBase { 
        文字列名。

        公共の文字列名{ 
            {戻り名を取得します。} 
            集合{ 
                名前=値。
                NotifyOfPropertyChange(()=>名); 
                NotifyOfPropertyChange(()=> CanSayHello)。
            } 
        } 

        パブリックブールCanSayHello { 
            取得{戻りますstring.IsNullOrWhiteSpace(名前を)!; } 
        } 

        パブリック無効のsayHello(){ 
            MessageBox.Show(String.Formatの( "こんにちは{0}!"、名前)); // :)実際の生活の中でこれを実行しないでください
        }
    } 
}
コードをコピー

あなたはShellViewModelはPropertyChangedBase、通知のプロパティを定義する簡単な基本クラスから継承し、見ることができ、通知インタフェースは、簡単な更新機能を有効にします。

シンプルなVMで3、ここでは、次のようにコードは、「HelloBootstrapper」の新しいクラスを作成し、どのようなブートストラップを定義します。

コードをコピー
名前空間Caliburn.Micro.Hello { 
    パブリッククラスHelloBootstrapper:BootstrapperBase { 
        パブリックHelloBootstrapper(){ 
            初期化()。
        } 

        保護オーバーライドボイドOnStartup(オブジェクト送信者、StartupEventArgs E){ 
            DisplayRootViewFor <ShellViewModel>(); 
        } 
    } 
}
コードをコピー

「トップViewModelに」を定義するメソッドを呼び出すことにより、このBootsrapper。プログラムが起動すると、初期化時にCMのフレームワークは、トップVMをロードし、VMは、対応するビューが表示されます。
入口構成として、いくつかの一般的なMVVM Bootsrapperフレームにおいて、このような構成設定、コンテナに構成など、見ることができます。

4.次のように続いて、我々は、デフォルトの起動手順HelloBootstrapper、修正「App.xaml」を置き換えます。

コードをコピー
<アプリケーションのxmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             のxmlns:X = "http://schemas.microsoft.com/winfx/2006/xaml" 
             のxmlns:ローカル= "CLR -namespace:Caliburn.Micro.Hello」
             X:クラス= "Caliburn.Micro.Hello.App"> 
    <Application.Resources> 
        <ローカル:HelloBootstrapper X:キー= "ブートストラップ" /> 
    </Application.Resources> 
</アプリケーション>
コードをコピー

 WPF:

コードをコピー
<アプリケーションのxmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             のxmlns:X = "http://schemas.microsoft.com/winfx/2006/xaml" 
             のxmlns:ローカル= "CLR -namespace:Caliburn.Micro.Hello」
             X:クラス= "Caliburn.Micro.Hello.App"> 
    <Application.Resources> 
        <ResourceDictionaryの> 
            <ResourceDictionary.MergedDictionaries> 
                <ResourceDictionaryの> 
                    <ローカル:HelloBootstrapper X:キー= "ブートストラップ" /> 
                </ ResourceDictionaryの> 
            </ResourceDictionary.MergedDictionaries> 
        </ ResourceDictionaryの> 
    </Application.Resources> 
</アプリケーション>
コードをコピー

 ここでは、私たちが思い出さする必要がある、「ブートストラップ」という名前のアプリケーション、リソースのリソースを追加した、ここでは値「Application.StartupUri」属性を削除されている、フォームではなく、CM枠で、デフォルトで起動する必要はありません。ブートストラップの方法は、以前に設定され、「トップViewModelに」を開始します。

次に、あなたのプログラムを起動しようとすることができ、あなたは、インターフェイスには、次の単語を持って表示されます。 


Caliburn.Micro.Hello.ShellViewが見つかりません。

Caliburn.Microは、私たちが「ShellView」と呼ばれるユーザーコントロール(ユーザーコントロール)、XAMLコードを作成し、その後、ShellViewModelを確立しているが、それを表示する方法を知っているので、我々は、対応するビューを必要としない、次のとおりです。 

コードをコピー
<ユーザーコントロールのx:クラス= "Caliburn.Micro.Hello.ShellView" 
             のxmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             のxmlns:X = "http://schemas.microsoft.com /のWinFX / 2006 / XAML "> 
    <StackPanelの> 
        <テキストボックスのX:名="名前」/> 
        <ボタンX:名= "のsayHello" 
                コンテンツ= "私をクリックして" /> 
    </ StackPanelの> 
</ユーザーコントロール>
コードをコピー

もう一度プログラムを起動し、あなたが見ることができるこの時間はちょうどUIインターフェイスを定義しました。

ボタンが利用可能になったとき、それをクリックし、テキストボックスにテキストを入力しようとすると、ポップアップメッセージウィンドウを見ることができます。

CMのフレームワークは、ビューとビューモデルの間のリンクを一致させるために使用され、シンプルで効果的な「命名規則」機能のセットを定義します。
実際には、それが指定されたVMの完全な名前を取得し、「モデル」セクションを削除することで、残りは対応する図です。
たとえば、「MyApp.ViewModels.MyViewModel」のために、あなたは「MyApp.Views.MyView」を取得します。

見つけることができ、TextBoxコントロールのビューがあり、ビューとビューモデルの比較、[X:名=「名前」]セクション、「名前」プロパティにViewModelにを実装するためにバインドされています。また、ビューは、Buttonコントロールを持っていることが判明し、[X:名=「のsayHello」]セクションには、「のsayHello」方式でのViewModelを実装するためにバインドされています。最後に、方法の可用性は「CanSayHello」プロパティもありViewModelに、そのような対応するボタンが利用できないように、結合機能として、「のsayHello」にリンクされます。

これらの機能は、VM ActionMessage(メソッドにバインドされた)関数と規則(契約が)機能を反映しています。

 

Caliburn.Micro - XAMLを簡単に。 

ウェブ:  https://github.com/Caliburn-Micro/Caliburn.Micro
文書:  http://caliburnmicro.com/documentation/
nuget:インストール・パッケージCaliburn.Micro

XAMLプラットフォームは、WPF、Silverlightの、WPなど様々なアプリケーションを構築MV *モードをサポートするために使用します


 その他の関連プロジェクトは、参照してくださいコードの沈殿ディレクトリを

重要:プロジェクトのバージョンは、最新の公式バージョンは優先することに注意してください。


 長いブログ投稿の前に、私は一般的に一連の記事を翻訳しますが、原因CMのフレームワークの更新にこれだけ翻訳され、ワー​​ド検索、あまりにも速く、プラス彼は記事の遅すぎる訳であることを主な理由半分以上が、十分な人々が使用しています。この記事では、V2のバージョンを記述し、V3は少し新しい番号になります。しかし、新しいバージョンとの主な用途の古いバージョンでは、ほぼ以下の公式のデモを参照してください。

基本構成、アクションと規則

1. Visual Studioは、クラスライブラリとSystem.Windows.Interactivity.dll CM枠を追加するモード(推奨)またはマニュアルの参照、DLLの道をnuget使用して、ソリューション「Caliburn.Micro.Hello」を作成します。
「MainPage.xamlを」を削除し、以下のいずれかのよう、「App.xaml.cs」を変更します。

コードをコピー
名前空間Caliburn.Micro.Hello { 
    System.Windowsを使用して、

    公共部分クラスアプリ:アプリケーション{ 
        パブリックアプリ(){ 
            のInitializeComponent(); 
        } 
    } 
}
コードをコピー

2. CMフレームワークはまた、最初の「ShellViewModel」と呼ばれるVMを作成し、我々はこれをしなければならない、ビュー・モデル・ファーストの方法を使用することをお勧めします、コードは次のとおりです。

コードをコピー
名前空間Caliburn.Micro.Hello { 
    System.Windowsを使用して、

    パブリッククラスShellViewModel:PropertyChangedBase { 
        文字列名。

        公共の文字列名{ 
            {戻り名を取得します。} 
            集合{ 
                名前=値。
                NotifyOfPropertyChange(()=>名); 
                NotifyOfPropertyChange(()=> CanSayHello)。
            } 
        } 

        パブリックブールCanSayHello { 
            取得{戻りますstring.IsNullOrWhiteSpace(名前を)!; } 
        } 

        パブリック無効のsayHello(){ 
            MessageBox.Show(String.Formatの( "こんにちは{0}!"、名前)); // :)実際の生活の中でこれを実行しないでください
        }
    } 
}
コードをコピー

あなたはShellViewModelはPropertyChangedBase、通知のプロパティを定義する簡単な基本クラスから継承し、見ることができ、通知インタフェースは、簡単な更新機能を有効にします。

シンプルなVMで3、ここでは、次のようにコードは、「HelloBootstrapper」の新しいクラスを作成し、どのようなブートストラップを定義します。

コードをコピー
名前空間Caliburn.Micro.Hello { 
    パブリッククラスHelloBootstrapper:BootstrapperBase { 
        パブリックHelloBootstrapper(){ 
            初期化()。
        } 

        保護オーバーライドボイドOnStartup(オブジェクト送信者、StartupEventArgs E){ 
            DisplayRootViewFor <ShellViewModel>(); 
        } 
    } 
}
コードをコピー

「トップViewModelに」を定義するメソッドを呼び出すことにより、このBootsrapper。プログラムが起動すると、初期化時にCMのフレームワークは、トップVMをロードし、VMは、対応するビューが表示されます。
入口構成として、いくつかの一般的なMVVM Bootsrapperフレームにおいて、このような構成設定、コンテナに構成など、見ることができます。

4.次のように続いて、我々は、デフォルトの起動手順HelloBootstrapper、修正「App.xaml」を置き換えます。

コードをコピー
<アプリケーションのxmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             のxmlns:X = "http://schemas.microsoft.com/winfx/2006/xaml" 
             のxmlns:ローカル= "CLR -namespace:Caliburn.Micro.Hello」
             X:クラス= "Caliburn.Micro.Hello.App"> 
    <Application.Resources> 
        <ローカル:HelloBootstrapper X:キー= "ブートストラップ" /> 
    </Application.Resources> 
</アプリケーション>
コードをコピー

 WPF:

コードをコピー
<アプリケーションのxmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             のxmlns:X = "http://schemas.microsoft.com/winfx/2006/xaml" 
             のxmlns:ローカル= "CLR -namespace:Caliburn.Micro.Hello」
             X:クラス= "Caliburn.Micro.Hello.App"> 
    <Application.Resources> 
        <ResourceDictionaryの> 
            <ResourceDictionary.MergedDictionaries> 
                <ResourceDictionaryの> 
                    <ローカル:HelloBootstrapper X:キー= "ブートストラップ" /> 
                </ ResourceDictionaryの> 
            </ResourceDictionary.MergedDictionaries> 
        </ ResourceDictionaryの> 
    </Application.Resources> 
</アプリケーション>
コードをコピー

 ここでは、私たちが思い出さする必要がある、「ブートストラップ」という名前のアプリケーション、リソースのリソースを追加した、ここでは値「Application.StartupUri」属性を削除されている、フォームではなく、CM枠で、デフォルトで起動する必要はありません。ブートストラップの方法は、以前に設定され、「トップViewModelに」を開始します。

次に、あなたのプログラムを起動しようとすることができ、あなたは、インターフェイスには、次の単語を持って表示されます。 


Caliburn.Micro.Hello.ShellViewが見つかりません。

Caliburn.Microは、私たちが「ShellView」と呼ばれるユーザーコントロール(ユーザーコントロール)、XAMLコードを作成し、その後、ShellViewModelを確立しているが、それを表示する方法を知っているので、我々は、対応するビューを必要としない、次のとおりです。 

コードをコピー
<ユーザーコントロールのx:クラス= "Caliburn.Micro.Hello.ShellView" 
             のxmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             のxmlns:X = "http://schemas.microsoft.com /のWinFX / 2006 / XAML "> 
    <StackPanelの> 
        <テキストボックスのX:名="名前」/> 
        <ボタンX:名= "のsayHello" 
                コンテンツ= "私をクリックして" /> 
    </ StackPanelの> 
</ユーザーコントロール>
コードをコピー

もう一度プログラムを起動し、あなたが見ることができるこの時間はちょうどUIインターフェイスを定義しました。

ボタンが利用可能になったとき、それをクリックし、テキストボックスにテキストを入力しようとすると、ポップアップメッセージウィンドウを見ることができます。

CMのフレームワークは、ビューとビューモデルの間のリンクを一致させるために使用され、シンプルで効果的な「命名規則」機能のセットを定義します。
実際には、それが指定されたVMの完全な名前を取得し、「モデル」セクションを削除することで、残りは対応する図です。
たとえば、「MyApp.ViewModels.MyViewModel」のために、あなたは「MyApp.Views.MyView」を取得します。

見つけることができ、TextBoxコントロールのビューがあり、ビューとビューモデルの比較、[X:名=「名前」]セクション、「名前」プロパティにViewModelにを実装するためにバインドされています。また、ビューは、Buttonコントロールを持っていることが判明し、[X:名=「のsayHello」]セクションには、「のsayHello」方式でのViewModelを実装するためにバインドされています。最後に、方法の可用性は「CanSayHello」プロパティもありViewModelに、そのような対応するボタンが利用できないように、結合機能として、「のsayHello」にリンクされます。

これらの機能は、VM ActionMessage(メソッドにバインドされた)関数と規則(契約が)機能を反映しています。

 

おすすめ

転載: www.cnblogs.com/aijiao/p/11078615.html