background preloader

WPF, MVVM

Facebook Twitter

About. MahApps.Metro is a project that Paul Jenkins started back in 2011 as a simple way to bring a Metro-style user interface into your WPF application.

About

Since then it's evolved and taken contributions (at last count there were 600+ forks) from various people in the community. This has been a project for the community, by the community - none of us are paid to do this, and we do it out of our love of code. So if you love this project and want it to get better, get involved! Metro isn't for everything Microsoft have demonstrated both sides of metro - it can look absolutely stunning if it is done well, or absolutely woeful if done poorly. Of course, there will always be exceptions to the rule, but just because metro looks simplistic does not mean the design isn't complex. WPF Master Details MVVM Application.

You can download the source code and see other parts of this application here.

WPF Master Details MVVM Application

It is highly recommended that you walk through the explanations by looking at the source code as it will help you gain a more solid understanding. You can also run the application on your computer. Patterns - WPF Apps With The Model-View-ViewModel Design Pattern. Developing the user interfaceof a professional software application is not easy.

Patterns - WPF Apps With The Model-View-ViewModel Design Pattern

It can be a murky blend of data, interaction design, visual design, connectivity, multithreading, security, internationalization, validation, unit testing, and a touch of voodoo. Considering that a user interface exposes the underlying system and must satisfy the unpredictable stylistic requirements of its users, it can be the most volatile area of many applications. There are popular design patterns that can help to tame this unwieldy beast, but properly separating and addressing the multitude of concerns can be difficult. The more complicated the patterns are, the more likely that shortcuts will be used later on which undermine all previous efforts to do things the right way. WPF’s CollectionViewSource.

Oct 31, 2009 CollectionViewSource has existed for a long time in WPF and was recently introduced in Silverlight 3.

WPF’s CollectionViewSource

My next post will cover CollectionViewSource in the context of Silverlight. But before covering that topic, I’ve decided to provide some background about why we introduced this class in WPF. Views in WPF When a user binds a WPF property to a collection of data, WPF automatically creates a view to wrap the collection, and binds the property to the view, not the raw collection. Views provide four types of functionality: sorting, filtering, grouping and tracking the current item.

The type of view created by WPF depends on the collection type. Validation in WPF. Introduction The project is about validation in WPF MVVM projects.

Validation in WPF

The various options are explored and a simple WPF application is built that adds two numbers together. The Adder application is implemented as a user control containing two TextBox for input and a Calculate button. Architecture Review The diagram below shows a typical "Enterprise" WPF application. 1. The Roadmap for WPF - .NET Blog. When we introduced WPF back in 2006 (.NET 3.0), the response was absolutely phenomenal.

The Roadmap for WPF - .NET Blog

Enterprises, ISV’s, and Microsoft Partners have made the technology central to their business, building amazing vertical solutions and mission critical applications for their customers. This momentum carries forward to today – 10% of all newly created projects in Visual Studio 2013 over the past 60 days are WPF. WPF has amassed a passionate, vibrant, community that uses it to build data-centric desktop business applications on Windows. Fixing MVVM Part 1: Commands - XAML BLOG. MVVM QuickStart. From: Developer's Guide to Microsoft Prism Library 5.0 for WPF patterns & practices Developer Center Prism provides guidance designed to help you more easily design and build rich, flexible, and easily maintained Windows Presentation Foundation (WPF) desktop applications, Silverlight Rich Internet Applications (RIAs), and Windows Phone 7 applications.

MVVM QuickStart

Using design patterns that embody important architectural design principles, such as separation of concerns and loose coupling, Prism helps you to design and build applications using loosely coupled components that can evolve independently but which can be easily and seamlessly integrated into the overall application. These types of applications are known as composite applications. Prism is intended for software developers building WPF or Silverlight applications that typically feature multiple screens, rich user interaction and data visualization, and that embody significant presentation and business logic.

Patterns & practices Team: Dialogs the MVVM Way. Download source - 44.9 KB Introduction.

Dialogs the MVVM Way

Attached Behaviors vs Attached Properties vs Blend Behaviors. Brian Lagunas asked a very good question based on seeing my sample video from my Pluralsight Windows 8 MVVM XAML Apps course, the gist of which was (paraphrased): “Why do you call them Attached Behaviors – won’t that cause confusion with what is an Attached Property and with Blend Behaviors?”

Attached Behaviors vs Attached Properties vs Blend Behaviors

My initial answer was along the lines of “because that is what we called them back in the day, long before Blend picked up the concept and created their own behaviors.” But Brian rightly pointed out that not everyone has as deep of history working with XAML as I do and a lot of people only associated the term behavior with Blend Behaviors. He also asked how to discriminate a simple attached property from an attached behavior. ListView Layout Manager. Download v1.3.0 - 22.9 KB Introduction Using a ListViewLayoutManager allows controlling the behavior of the column layout of ListView/GridView controls: Fixed Column: Column with fixed column width Range Column: Column with minimal and/or maximal column width Proportional Column: Column with proportional column width The Range Column allows to restrict the column width as well as to fill the remaining visible area with the column.

ListView Layout Manager

As known from HTML tables or the Grid control, the Proportional Column determines the column widths on a percentage basis. Display HwndHost Inside ToolTip/ContextMenu. This post is a further elaboration to my reply to this MSDN WPF forum thread. Before digging into the details of how to solve this issue, let's start with some background information on ToolTip/ContextMenu and HwndHost. In WPF, ToolTip/ContextMenu is hosted inside a Popup, Popup is essentially a hwnd with WS_POPUP window style. By default, the Popup created by ToolTip and ContextMenu services will have AllowsTransparency property set to true to enable layered windows on it. WPF uses application managed layered windows which is incompatible with the win32/GDI rendering model, which means that application managed layered window doesn't support child hwnd with WS_CHILD window style. MVVM Light Toolkit - Home.

The Best Search Links on the Net. WPF Application Framework (WAF) - Documentation.