2011-06-23 17 views
1

mvvmパターンでコントロールを動的に作成するにはどうすればよいですか?Silverlight mvvm dynamic controls

私はポートにしようとしているコード:

  • 親コントロール:

    のObservableCollection史=新しいのObservableCollection();

    プライベートvoid Save_Click(オブジェクト送信者、RoutedEventArgs e) { ChildControl cc = new ChildControl(); History.Add(cc); }

+1

あなたには効果がありません。 XAMLサンプルをHistoryコレクションにバインドできますか? – Mart

答えて

0

あなたがContentControlにを使用している場合、あなたは単に上記のあなたのコントロールのリストが表示されます、あなたの履歴収集

<ListBox ItemsSource="{Binding History}"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <ContentControl Content="{Binding }"/> 
      </Grid> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

に特異的に結合することができます。

あなたの実装では、VMはView Objectsについて知っていますが、VM内で純粋なデータを使用し、自身を表示する方法を気にする必要はありません。

0

"ChildControl"がUserControlから派生していると仮定すると、ItemsSourceが設定されると、これらの各コントロールのXAMLが自動的に表示されます。

<ListBox ItemsSource="{Binding History}"> 
</ListBox> 
関連する問題