2012-01-02 4 views
0

私は次のTabControlを持っている:あなたはそれがCaliburn.Microを使用してのViewModelにバインドされて見ることができますが、私はこれはunrelevantだと思うのようTabControlの

<TabControl x:Name="Networks"> 
    <TabControl.ItemTemplate> 
    <DataTemplate> 
     <StackPanel Orientation="Horizontal"> 
     <TextBlock Text="{Binding DisplayName}" /> 
     <Button Content="X" cal:Message.Attach="CloseItem($dataContext)" /> 
     </StackPanel> 
    </DataTemplate> 
    </TabControl.ItemTemplate> 
</TabControl> 

。 新しいTabItemを追加するには、このコントロールの右側にボタンを追加する方法はありますか?私は簡単な解決策を探しています。私はこれを探しましたが、これを簡単に実装することはできませんでした。

おかげ

+1

可能な複製http://stackoverflow.com/questions/3468866/wpf-tabcontrol-add-new-tab-button? – snurre

答えて

2

あなたはクリックで新しい項目を追加することができます最後に先頭のタブのCollectionContainerと1の明示的TabItemItemsSourceCompositeCollectionを作ることができる(+ -tab一部のブラウザのように) 。

+0

これを試しましたが、バインディングが機能していないようです。私はBindableCollection を持っていますが、フリーズ可能なコレクションのみをバインドできることを読んだことがあります。 – errorcode007

+0

@ errorcode007: 'CollectionContainer'に' DataContext'がなく、 'ElementName'や' RelativeSource'を使うことはできません([この質問を参照](http://stackoverflow.com/questions/6446699/how-do-あなたのバインド・コレクション・コンテナ・ツー・ア・ビュー・ビュー・モデル))。もちろん、VM内でコレクションを作成し、簡単な割り当てで作業することもできます。 –

+0

@ errorcode007:また、 'IEditableCollectionView'はこのユースケースのためのものです。コメントにリンクされている複製を見てください。これよりも優れた解決策があります。 –