Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vkobel/wpf-foundation-framework
This project provide a quick and easy-to-use WPF framework - still in progress
https://github.com/vkobel/wpf-foundation-framework
Last synced: about 1 month ago
JSON representation
This project provide a quick and easy-to-use WPF framework - still in progress
- Host: GitHub
- URL: https://github.com/vkobel/wpf-foundation-framework
- Owner: vkobel
- Created: 2013-05-07T09:34:01.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2013-06-12T13:32:43.000Z (over 11 years ago)
- Last Synced: 2024-12-06T05:35:17.477Z (about 1 month ago)
- Language: C#
- Homepage:
- Size: 3.81 MB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
WPF-Foundation-Framework
========================> First of all this is a **work in progress**
This project provide a quick and easy-to-use WPF framework separated into two sub-frameworks:
**FoundationData** and **FoundationWPF**Main Features
-------------+ The Data framework implements a generic `Repository` that provide standard methods to access and persist POCO form the Entity Framework
+ Two levels of navigation (with the possiblilty to implement more)
+ Described by the `NavigAttribute`
+ Uses dependency injection via **Ninject**
+ Instant and automatic ViewModel creation and `ViewModelCollection` right from the `Repository`
+ Possibility to have the ViewModels implementing `IPreLoadable` to enable asynchronous loading
+ Each ViewModel is represented by a `ViewModelProxy` which exposes a `BindingData` property to bind to
+ `BindingData` contains all the entity properties as well as the new ones defined in the ViewModel class that inherits from `ViewModelProxy`
+ The MVVM Framework used here is **MVVM Light Toolkit**Samples
-------#### Simplest possible ViewModel
All ViewModelProxy<> exposes the all proxied properties through `BindingData`.
```cs
class PersonViewModel : ViewModelProxy {
public PersonViewModel(Person p) : base(p) {
}
}
```#### A Collection ViewModel to display a list of person and their details, with navigation `Humans -> Person`
Every ViewModelCollection exposes a public member `CollectionView`.
```cs
[Navig("Humans", "Person")]
class PersonCollectionViewModel : ViewModelCollection {
}
```#### Usage in the view
Access a simple property:
```
<(...) Text="{Binding BindingData.Lastname}" />
```Access a simple through the collection:
```
<(...) Text="{Binding CollectionView/BindingData.Lastname}" />
```Bind to the collection:
```
<(...) ItemsSource="{Binding CollectionView}" />
```More samples will come ;)