Sim, é possível utilizar Datasets no WPF. Eu sei que você deve estar pensando que isso é uma contradição, e que não faz o menor sentido utilizar uma tecnologia antiga como o Dataset, junto com uma tecnologia nova como o WPF. Mas eu não estou aqui para julgar o que é “melhor ou pior”, confio em você para fazer as escolhas certas, em cada um dos seus projetos.

Nesse artigo eu só quero mostrar que, para o bem ou para o mal, é possível utilizar Datasets no WPF. E, além disso, temos uma mãozinha do Visual Studio para ajudar nessa tarefa. A ideia é fazer algo bem prático e rápido, para que você veja como o Dataset ainda está vivo no .NET, e continua sendo uma das maneiras mais fáceis de se lidar com dados.

Abra o seu Visual Studio 2010 e crie um novo projeto do tipo WPF Application. Vá até o menu Data e escolha a opção Add New Data Source. Na primeira janela do Wizard, escolha a opção Database, e clique em Next. Na janela seguinte (Figura 1) escolha a opção Dataset e também clique em Next.

Figura 1. Criando um novo Dataset

Nessa terceira etapa, você deve criar uma nova conexão com o banco de dados. Nesse exemplo estamos utilizando o database Northwind em um SQL Server 2008. Depois de criada a conexão clique em Next. Na última etapa deste Wizard, marque a opção Tables e clique em Finish.

O resultado pode ser observado na janela Data Sources, que você acessa através do Menu Data / Show Data Sources (Figura 2). Você também pode ver que o Dataset foi criado na Solution Explorer.

Figura 2. Dataset NorthwindDataSet

Agora vem a parte mais interessante, que é como esse Dataset pode ser facilmente utilizado em uma janela WPF. Para isso abra o Design da janela MainWindows.xaml, e como você pode ver na Figura 3, arraste a tabela Categories do Dataset para a janela WPF.

Figura 3. Datagrid criado com base na Datatable

Veja que um DataGrid foi automaticamente criado com base na Datatable Categories, e além disso, todo o Binding do WPF já foi configurado para acessar o nosso Dataset. Outro exemplo interessante é você mudar a DataTable para Details (Figura 4), e arrastá-la novamente para a janela, logo abaixo do DataGrid. Você verá que os controles para um formulário de Detalhes da tabela Category serão automaticamente criados.

Figura 4. Mudando a Datatable para Details

Você pode testar sua aplicação agora, e já será capaz de ver todos os registros da tabela Category na sua aplicação WPF, conforme nos mostra a Figura 5. Veja que o Binding do DataGrid e dos TextBoxs estão perfeitos.

Figura 5. WPF com Dataset

Eu não estou dizendo aqui que você deva usar Datasets nos seus projetos WPF, eu só estou dizendo que você pode, se assim desejar. Eu particularmente uso NHibernate na maioria das minhas aplicações WPF, mas não teria problema nenhum em usar Datasets, caso encontre uma situação em que eles sejam úteis. Gosto da diversidade de opções que temos no .NET, agora cabe a nós termos a sabedoria para fazer as escolhas certas em cada situação.