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
- The Data framework implements a generic
Repository<TEntity>
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
- Described by the
- Instant and automatic ViewModel creation and
ViewModelCollection
right from theRepository<TEntity>
- Possibility to have the ViewModels implementing
IPreLoadable
to enable asynchronous loading - Each ViewModel is represented by a
ViewModelProxy<TEntity>
which exposes aBindingData
property to bind toBindingData
contains all the entity properties as well as the new ones defined in the ViewModel class that inherits fromViewModelProxy<TEntity>
- The MVVM Framework used here is MVVM Light Toolkit
All ViewModelProxy<> exposes the all proxied properties through BindingData
.
class PersonViewModel : ViewModelProxy<Person> {
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
.
[Navig("Humans", "Person")]
class PersonCollectionViewModel : ViewModelCollection<Person, PersonViewModel> {
}
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 ;)