¿navegación de datos similar al acceso en WPF?
-
06-07-2019 - |
Pregunta
¿Cuál sería la mejor manera de construir una navegación de datos como en formularios de acceso en XAML / C #?
¿Debo crear un control de usuario (o incluso un control personalizado) que simplemente enlace a mi colección en el que puedo poner otros controles? (de ahí esta pregunta: C # User Control que puede contener otros controles (cuando lo use) )
¿O puedo construir algo derivando de algún modo ItemsControl? ¿Cómo?
¿O se haría esto completamente diferente hoy (como "este estilo de navegación es tan el año pasado!")?
Soy relativamente nuevo en C # y todo (no programo como tal, pero con más como '' housewife-language '' Access-VBA) tampoco soy hablante nativo de inglés. Así que por favor, sé gentil =)
Solución
Puede crear control de usuario y colocar un grupo de botones (Primero, Anterior, Siguiente, Último, etc.) en él y colocarlo en la ventana principal. En segundo lugar, puede vincular su control de usuario de navegación de datos a un CollectionViewSource
que lo ayudará a navegar entre sus datos.
Su ventana principal:
<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>
Su control de usuario de navegación de datos:
<StackPanel>
<Button x:Name="Prev" Click="Prev_Click"><</Button>
<Button x:Name="Next" Click="Next_Click">></Button>
<!-- and so on -->
</StackPanel>
Y sus manejadores de clics son así:
private void Prev_Click(object sender, RoutedEventArgs e)
{
ICollectionView view = CollectionViewSource.GetDefaultView(DataContext);
if (view != null)
{
view.MoveCurrentToPrevious();
}
}
Espero que esto ayude.
Otros consejos
Parece que buscas un control DataGrid. Microsoft está lanzando un WPF DataGrid como parte de un Kit de herramientas WPF que puede descargar aquí: http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=25047 .