Je suis très nouveau pour WPF et je écris une application utilisant cet exemple comme point de départ http://msdn.microsoft.com/en-us/magazine/dd419663.aspx#id0090025Comment changer de se lier ObervableCollection à un TabControl à un ContentControl
Je n'avoir un espace de travail visible à tout temps, donc je veux me débarrasser du TabControl et utiliser quelque chose de simple à la place - probablement un ContentControl, je ne suis vraiment pas sûr mais tout ce qu'il doit faire est d'avoir du contenu et être fermable. Donc, je suis en train de remplacer:
<DataTemplate x:Key="WorkspacesTemplate"><TabControl
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding}"
ItemTemplate="{StaticResource ClosableTabItemTemplate}"
Margin="4"
/>
avec:
<DataTemplate x:Key="WorkspacesTemplate">
<ContentControl Content="{Binding ??}" ContentTemplate="{StaticResource ClosableTabItemTemplate}"/>
</DataTemplate>
mais je ne sais pas quoi lier. Le code dans l'exemple semble utiliser CollectionViewSource pour définir l'espace de travail actif - c'est l'espace de travail actif qui m'intéresse mais je ne comprends pas ce que TabControl fait, sauf que c'est quelque chose à voir avec IsSynchronizedWithCurrentItem = "Vrai"
le modèle est invoqué à partir d'ici (Workspaces est le ObservableCollection de ViewModels):
<HeaderedContentControl Content="{Binding Path=Workspaces}" ContentTemplate="{StaticResource WorkspacesTemplate}" Header="Workspaces" Style="{StaticResource MainHCCStyle}"/>
et voici le modèle ClosableItem:
<DataTemplate x:Key="ClosableTabItemTemplate">
<DockPanel Width="120">
<Button
Command="{Binding Path=CloseCommand}"
Content="X"
Cursor="Hand"
DockPanel.Dock="Right"
Focusable="False"
FontFamily="Courier"
FontSize="9"
FontWeight="Bold"
Margin="0,1,0,0"
Padding="0"
VerticalContentAlignment="Bottom"
Width="16" Height="16"
/>
<ContentPresenter
Content="{Binding Path=DisplayName}"
VerticalAlignment="Center"
/>
</DockPanel>
</DataTemplate>
S'il vous plaît quelqu'un peut-il expliquer ce que je dois faire? Merci
Oui, le bit je comprends ne surtout pas comment était TabControl interagissait avec la CollectionViewSource. De toute façon, je me bats encore. J'ai exposé CurrentWorkspace et je fais
Nix
et quel est le problème? – GazTheDestroyer
Une partie du problème est que je ne sais même pas quel contrôle utiliser. Les ViewModels que je charge sont des composites avec beaucoup de contrôles usuels, donc je veux juste un panneau fermable mais je ne sais pas s'il y a un type de panneau ou quoi. Je ne veux pas de fenêtre, c'est pourquoi j'ai essayé de garder le modèle ClosableItem. – Nix