2009-06-19 7 views
1

Quel serait le meilleur moyen de construire une navigation de données comme dans les formulaires d'accès en XAML/C#?la navigation de données de type accès dans WPF?

Dois-je créer un contrôle utilisateur (ou même un contrôle personnalisé) que je viens de lier à ma collection dans laquelle je peux mettre d'autres contrôles? (d'où cette question: C# User Control that can contain other Controls (when using it))

Ou puis-je construire quelque chose en dérivant à partir de ItemsControl en quelque sorte? Comment?

Ou serait-ce fait complètement différent aujourd'hui (comme "ce style de navigation est si l'année dernière!")? Je suis relativement nouveau à C# et tout (pas la programmation en tant que telle, mais avec plus comme "langue de la maison" Access-VBA) aussi je ne suis pas un locuteur natif anglais. Donc pls be gentle =)

Répondre

1

Vous pouvez créer un contrôle utilisateur et placer un tas de boutons (Premier, Précédent, Suivant, Dernier, etc.) et le placer dans la fenêtre principale. Deuxièmement, vous pouvez lier votre contrôle utilisateur de navigation de données à un CollectionViewSource qui vous aidera à naviguer parmi vos données.

Votre fenêtre principale:

<Window.Resources> 
    <CollectionViewSource x:Key="items" Source="{Binding}" /> 
</Window.Resources> 
<Grid> 
    <WpfApplication1:DataNavigation DataContext="{Binding Source={StaticResource items}}" /> 
    <StackPanel> 
     <TextBox Text="{Binding Source={StaticResource items},Path=Name}" /> 
    </StackPanel> 
</Grid> 

vos données de navigation de contrôle de l'utilisateur:

<StackPanel> 
    <Button x:Name="Prev" Click="Prev_Click">&lt;</Button> 
    <Button x:Name="Next" Click="Next_Click">&gt;</Button> 
    <!-- and so on --> 
</StackPanel> 

Et vos gestionnaires de clic va comme ceci:

private void Prev_Click(object sender, RoutedEventArgs e) 
{ 
    ICollectionView view = CollectionViewSource.GetDefaultView(DataContext); 
    if (view != null) 
    { 
     view.MoveCurrentToPrevious(); 
    } 
} 

J'espère que cela aide.

+0

Cela fonctionne! Je peux naviguer dans la collection (cochée l'élément actuel), mais mes autres contrôles ne sont pas mis à jour avec l'élément actuel de la collection. Cela ne peut être qu'une petite chose, je crois ... –

+0

Ok, j'ai compris. Son important, que les contrôles qui affichent les données sont liés à la même ressource que les contrôles de navigation ... –

0

On dirait que vous recherchez un contrôle DataGrid. Microsoft publie un WPG DataGrid dans le cadre d'un WPF Toolkit que vous pouvez télécharger ici: http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=25047.

+0

Merci pour votre réponse, mais une grille de données n'est pas ce dont j'ai besoin, je pense. J'ai beaucoup de contrôles différents à mettre sur mes formulaires. –

+0

Ah, je pensais à Excel plutôt qu'à l'accès. Mon mauvais :) – AndrewS

Questions connexes