2016-03-31 2 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

В принципе, да, но моя основная проблема заключается в том, что я не знаю, как добавить кнопку в Itemcontrol, которая всегда находится внизу и существует только один раз. –

+0

Возможно, вам нужно использовать композитный набор? См. Http://stackoverflow.com/questions/6446699/how-do-you-bind-a-collectioncontainer-to-a-collection-in-a-view-model – auburg

ответ

1

Вам нужно настроить Template вашего ItemsControl для того, чтобы добавить Button ниже ItemsPresenter:

<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

Спасибо, сэр! :) –

Смежные вопросы