Utilizando o Vísual Studio Community, desenvolva uma aplicação WPF (.Net Framework). Se permita construir um CRUD (Create, Read, Update, Delete) com base em um tema de sua escolha. Entretanto vamos tentar seguir algumas regrinhas importantes:
- O programa deve seguir com o Padrão Arquitetural MVVM.
- Pensar em uma aplicação que trabalha com a ideia de Heranças
- O Botão de Create deve abrir uma nova tela para preenchimento das informações.
- O Botão Update deve abrir uma nova tela com as informações do objeto selecionado.
- O Botão Delete precisa desabilitar sempre que a ListView estiver vazia.
WPF: https://docs.microsoft.com/pt-br/visualstudio/designers/getting-started-with-wpf?view=vs-2019
MVVM: https://docs.microsoft.com/pt-br/windows/uwp/data-binding/data-binding-and-mvvm
INotifyPropertyChanged: https://docs.microsoft.com/pt-br/dotnet/api/system.componentmodel.inotifypropertychanged?view=net-5.0
INotifyCollectionChanged: https://docs.microsoft.com/pt-br/dotnet/api/system.collections.specialized.inotifycollectionchanged?view=net-5.0
RelayCommand: https://www.c-sharpcorner.com/UploadFile/20c06b/icommand-and-relaycommand-in-wpf/
Operador new: https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/operators/new-operator
Expressões lambda: https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/operators/lambda-expressions
Observer: Wiki
- O que é o WPF?
- Explique o Padrão Arquitetural MVVM
- O que é fazer um Binding?
- Em suas palavras, explique o Padrão de Projeto Observer.
- Qual o papel da interface INotifyPropertyChanged?
- Qual a diferença entre INotifyPropertyChanged e a INotifyCollectionChanged?
- Qual a diferença entre uma List, um ObservableCollection e um BindingList?
- O que é vazamento de memória?
- O que é Garbage Collector e como ele funciona?
- Site duas linguagens, uma que também tenha e outra que não tenha Garbage Collector.