:sparkles début de readme

master
Lucas EVARD 2 years ago
parent bb3aabf408
commit 0807a896b7

@ -2,10 +2,53 @@
## Organisation
- Les pages sont disponibles dans le dossier "Pages".
- Les composants utilisés (ContentView et Popup) dans les pages se trouvent dans le dossier "Pages/Composants".
- Les pages sont disponibles dans le dossier [_**Pages**_]("https://codefirst.iut.uca.fr/git/lucas.evard/PocketBook/src/branch/master/sources/PocketBook/Pages").
- Les ContentView réutilisé dans les pages se trouvent dans le dossier [_**Composants/ContentView**_]("https://codefirst.iut.uca.fr/git/lucas.evard/PocketBook/src/branch/master/sources/PocketBook/Pages/Composants/ContentView").
- Les VM applicatives sont à l'intérieur du projet MAUI, dans le dossier [_**Applicative_VM**_]("https://codefirst.iut.uca.fr/git/lucas.evard/PocketBook/src/branch/master/sources/PocketBook/Applicative_VM").
- Les VM wrappant les classes du modèle sont présent dans une bibliothèque de classes externe au projet MAUI, dans le dossier [_**ViewModel**_]("https://codefirst.iut.uca.fr/git/lucas.evard/PocketBook/src/branch/master/sources/ViewModel").
## Mon toolkit MVVM
Un toolkit MVVM a été mis en place afin de soulager les écritures redondantes pour wrapper le modèle et pour la gestion des modification de propriétés.
classDiagram
class RelayCommand<T> {
+execute: Action<T>
+canExecute: Func<T, bool>
-CanExecuteChanged: EventHandler?
+RelayCommand(execute: Action<T>, canExecute: Func<T, bool>)
+CanExecute(parameter: object?): bool
+Execute(parameter: object?): void
}
class RelayCommand {
-baseRelayCommand: RelayCommand<object>
+RelayCommand(execute: Action<object>, canExecute: Func<object, bool>)
+Execute(): async Task
}
class ObservableObject {
+PropertyChanged: PropertyChangedEventHandler?
+OnPropertyChanged(propertyName: string): void
+SetProperty<T>(ref member: T, value: T, propertyName: string): void
+SetProperty<T>(member: T, value: T, action: Action<T>, propertyName: string): void
}
class BaseViewModel<TModel> {
+Model: TModel
-model: TModel
+BaseViewModel(model: TModel)
+BaseViewModel()
}
class BaseViewModel {
}
RelayCommand <|-- RelayCommand
ObservableObject <|-- BaseViewModel
BaseViewModel <|-- BaseViewModel<TModel>
## Ce qui fonctionne
- Navigation
- La plupart des pages

Loading…
Cancel
Save