私のSilverlightアプリケーションでいくつかのコントロールを動的に生成したいと思います。MVVMのパターンに従って動的にコントロールを作成する
public class CustomProperty
{
public CustomDataType DataType { get; set; } //enum:integer, string, datetime, etc
public object Value { get; set; }
public string DisplayName { get; set; }
public string Mappings { get; set; } // Simulating enums' behavior.
}
は最高何ですか:
public class TestClass { [Display(Name="First Name")] public string FirstName { get; set; } [Display(Name = "Last Name")] public string LastName { get; set; } public List<CustomProperty> CustomProperties { get; set; } }
各「CustomProperty」ついにテキストボックス、チェックボックスやコンボボックスは次のようになります。
をより明確にするために、ここで私のクラスの単純化された定義ですMVVMパターンを使用してこれを実装する方法は? ViewModelでCustomPropertiesを解析して、どのコントロールを作成するかを調べると、MVVMパターンに基づいてビュー内に新しいコントロールを作成するにはどうすればいいですか?UIを高速化するのに役立つ銀色のコントロールはありますか?
プログラムでデータ注釈を定義できますか?たとえば、カスタムプロパティを解析した後、プロパティにデータアノテーション(Display、Validation)を追加し、DataForm、PropertyGrid、またはこのような状況のための便利なコントロールにバインドできますか?
ありがとうございます。
最初の質問については、私の答え[ここ](http://stackoverflow.com/questions/5267905/wpf-mvvm-creating-dynamic-controls/5267964#5267964)を参照してください。 Silverlightの代わりにWPFですが、そのままそのまま適用することができます。 – Jon
@ジョン:リンクありがとう。私は明日それを実装しようとします。データのテンプレート(双方向バインディングのようなもの)もデータテンプレートで更新することは可能ですか? – Kamyar
確かに、それはオブジェクトのビジュアルツリーを指定するより柔軟な方法です。ハードコードされていれば、同じことをすることができます。 – Jon