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 =)

¿Fue útil?

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">&lt;</Button>
    <Button x:Name="Next" Click="Next_Click">&gt;</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 .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top