私は MVVM を使用しており、WebBrowser を ViewModel(-property) にバインドしたいと考えています。このメソッドを使用して、バインド可能な WebBrowser を実行しました: http://pastebin.com/1SwwQgJZ
とにかく、XMLファイルに基づいてフォーミュラーを動的に作成したい。私のアプリケーションは次のようになります: ユーザーは WPF プログラムを開き、自分のアカウントでログインします。この後、WebBrowser を含む別のビューがポップアップし、WPF にはいくつかの XML ファイルを含むコンボボックスが含まれます。ユーザーは XML ファイルを選択でき、そのコンテンツに基づいて、WebBrowser のソースが更新されます。私は次のようにします (HTML ファイルを作成する方法を示すために切り取っただけです)。
foreach(Question q in QuestionList)
foreach(Answer a in AnswerList)
_reportpage + = "<td> " + _reportpage + "</td>";
だから私はフォームを作成したいと思っています。これは後で次のようになります。
good middle bad
How do you feel? [ ] [ ] [X]
How was school? [X] [ ] [ ]
[ ] はラジオボタンです。このようなフォームを作成することは問題ではありません。問題はデータを ViewModel に送り返すことです...ユーザーがクリックした回答を知りたいのですが、それを「回答」のリストに保存します。どうすればいいですか?
私は WPF フォームを動的に作成する必要があり、これを WPF/WP8/W8/Silverlight で使用したいので、すべてのプラットフォームが HTML を処理できるため、この方法が最善の方法だと思います。
編集:次のようなHTMLファイルを作成しています:
_reportpage = "<table border='2'>";
_reportpage += "<tr><td></td>";
foreach (T_Answer answer in AnswerList)
{
_reportpage += "<td>" + answer.Text + "</td>";
}
_reportpage += "</tr>";
foreach (T_Question tq in QuestionList)
{
_reportpage += "<tr><td>" + tq.Text + "</td>";
foreach (T_Answer ta in tq.Answer)
{
_reportpage += "<td><input type='radio' name='" + tq.ID + "' value='" + ta.Answer.ID + "'>" + ta.Answer.Text + "</td>";
}
_reportpage += "</tr>";
}
_reportpage += "</table>";
_reportpage += "<input type='button' value='Submit'>";