Acesso-like de navegação de dados no WPF?
-
06-07-2019 - |
Pergunta
Qual seria a melhor maneira de construir a-navegação de dados como no access-formas em XAML / C #?
Devo criar um controle de usuário (ou controle personalizado mesmo) que eu acabei de ligar para a minha coleção em que eu possa colocar outros controles? (Daí esta pergunta: C # User controle que pode conter outros controles (quando usá-lo) )
Ou eu posso construir algo derivando daí ItemsControl de alguma forma? como?
Ou isso seria feito completamente diferente hoje (como "este estilo de navegação é tão no ano passado!")?
Eu sou relativamente novo para C # e todos (não de programação, como tal, mas com mais como "dona de casa-linguagem" Access-VBA) também não sou falante nativo Inglês. Então pls ser = suaves)
Solução
Você pode criar o controle de usuário e colocar um monte de botões (Primeiro, Anterior, Próximo, passado, etc ..) em-lo e colocá-lo na janela principal. Em segundo lugar, você pode vincular o controle de usuário de navegação de dados para um CollectionViewSource
que irá ajudá-lo a navegar entre os seus dados.
A sua janela 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>
Seus Dados Navigation User Control:
<StackPanel>
<Button x:Name="Prev" Click="Prev_Click"><</Button>
<Button x:Name="Next" Click="Next_Click">></Button>
<!-- and so on -->
</StackPanel>
E seus manipuladores de clique é assim:
private void Prev_Click(object sender, RoutedEventArgs e)
{
ICollectionView view = CollectionViewSource.GetDefaultView(DataContext);
if (view != null)
{
view.MoveCurrentToPrevious();
}
}
Espero que isso ajude.
Outras dicas
Parece que você está depois que um controle DataGrid. A Microsoft está lançando um WPF DataGrid como parte de um WPF Toolkit que você pode baixar aqui: http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=25047 .