2016-04-03 6 views
0

ここでのポイント:Microsoft.Bot.Builder.FormFlowを使用して作成したフォームを実行しているときにユーザーが選択した回答に応じて、現在の小計を印刷してから処理することが大好きです。Microsoft Bot FormFlowを使用している場合、小計を計算して印刷することはできますか?

私はFormBuilderの でMessage()メソッドを使用することを考えましたが、BuildForm()メソッド自体が静的であるため、既に設定されているプロパティの値をどのようにチェックできるかわかりません。

アイデア?

答えて

0

ご意見ありがとうございます。今これを行うには素晴らしい方法はありません。私はちょうどビルダーライブラリに以下を追加しました。これは来週初めの次回のリリースに予定されています。それはあなたのニーズを満たすでしょうか?あなたは待つことができない場合は

#region Documentation 
    /// <summary> Given <paramref name="state"/> return a <see cref="PromptAttribute"/> with a template for the message to display. </summary> 
    /// <typeparam name="T"> Form state type. </typeparam> 
    /// <param name="state"> Form state. </param> 
    /// <returns> A PromptAttribute describing the message to display. </returns> 
    #endregion 
    public delegate PromptAttribute MessageDelegate<T>(T state); 

IFormBuilder<T> 
... 
     #region Documentation 
     /// <summary> Generate a message using a delegate. </summary> 
     /// <param name="generateMessage"> Delegate for building message. </param> 
     /// <param name="condition">  Whether or not this step is active. </param> 
     /// <returns>This form.</returns> 
     #endregion 
     IFormBuilder<T> Message(MessageDelegate<T> generateMessage, ConditionalDelegate<T> condition = null); 

、あなたのフォームの状態で合計フィールドを更新し、メッセージ内のフィールド値を表示するために検証を使用することができます。これは、ユーザの流れの一部であるフィールドの欠点を有する。

また、自分自身でIFieldを実装し、アクティブフォームから最後のフォーム状態を取得して、独自のプロンプトとレコグナイザを生成することもできます。これには、より多くの作業が必要であり、ユーザーの反応が必要であるという欠点があります。

+0

妥当と思われます。新しいバージョンが利用可能になったら、すぐに私に知らせることができますか?どうも! – Mahlzeit

関連する問題