2016-03-31 7 views
0

ItemsControlを、別のViewModelで同じコンテンツを追加するボタンで実装したいとします。C#WPF:ItemsControl with Add-Content Button

<ItemsControl ItemsSource="{Binding Items}"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Controls:ItemView /> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

ボタンは常にコントロールの最後の項目でなければなりませんし、それが唯一の追加ボタンを持っている必要があります。これまでのところ私はこのコードを持っています。誰かが良い解決策を持っていますか?私は醜い回避策を自分自身でそれを行うことが、私は醜い回避策を嫌い:)

+0

あなたが欲しいですボタンを押して、「Items」に要素を追加しますか? – Andy

+0

基本的にはyesですが、私の主な問題は、ItemsControlにボタンを追加する方法がわからないことです。常に下部にあり、一度だけ存在します。 –

+0

おそらく合成のコレクションを使用する必要がありますか? http://stackoverflow.com/questions/6446699/how-do-you-bind-a-collectioncontainer-to-a-collection-in-a-view-model – auburg

答えて

1

あなたはItemsPresenterの下Buttonを追加するためにあなたのItemsControlTemplateをカスタマイズする必要があります。

<ItemsControl ItemsSource="{Binding Items}"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Controls:ItemView /> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 

    <ItemsControl.Template> 
     <ControlTemplate TargetType="ItemsControl"> 
      <StackPanel> 
       <ItemsPresenter /> 
       <Button Content="Add Item" Click="AddItem_Click"/> 
      </StackPanel> 
     </ControlTemplate> 
    </ItemsControl.Template> 

</ItemsControl> 
+0

ありがとうございました! :) –