TL;DR; Explains building a flexible WPF data model in VB.NET for visualising hierarchical relationships using generics, ObservableCollections, and INotifyPropertyChanged.
Over the last week I have been looking at the source for the
Family.Show
application from
Vertigo
. I needed to look at methods of presentation of hierarchical information graphically using WPF and I saw this as a good representation of that sort of data. So I se about not only converting it to VB.NET but adding generics to the mix.
The first part of the application is the core objects that represent the data and allow interaction in a way that WPF can handle. This means using Observable Collections and implementing INotifyPropertyChanged to allow a higher level of interaction. I wanted to support any Source object type as well as my own custom types, so the type needed to be nested with a Wrapper that gives the illusion that it is a solid type, but in actual fact it is a soft wrapper that allows the system to interact with it without really understanding the type. The specific understanding of the type is done at a much higher level.
You will need to open this diagram in a new window to get the effect, but it is a completely generic representation of Parent, Child and Sibling relationships for any object regardless of wither you have access to the source or not.
This is not currently designed to be an editable object, but inheriting from the ItemWrapper class would allow this, but would require a modification to the framework to handle the inherited type. Maybe v2…
Technorati Tags: .NET WPF Design WIT Developing
If you've made it this far, it's worth connecting with our principal consultant and coach, Martin Hinshelwood, for a 30-minute 'ask me anything' call.
We partner with businesses across diverse industries, including finance, insurance, healthcare, pharmaceuticals, technology, engineering, transportation, hospitality, entertainment, legal, government, and military sectors.
Healthgrades
Genus Breeding Ltd
Akaditi
Bistech
Alignment Healthcare
Higher Education Statistics Agency
Freadom
Slaughter and May
ProgramUtvikling
Philips
ALS Life Sciences
New Signature
Deliotte
Graham & Brown
Flowmaster (a Mentor Graphics Company)
Capita Secure Information Solutions Ltd
Kongsberg Maritime
Illumina
Department of Work and Pensions (UK)
Washington Department of Transport
Washington Department of Enterprise Services
Ghana Police Service
Nottingham County Council
New Hampshire Supreme Court
ALS Life Sciences
DFDS
Cognizant Microsoft Business Group (MBG)
Akaditi
New Signature
Schlumberger