DCSIMG
Design - Essential XAML

Browse by Tags

All Tags » Design (RSS)

Displaying user Messages, Errors and Dialogs from a ViewModel using a Service – Part 2 by Tomer Shamam

Displaying user Messages, Errors and Dialogs from a ViewModel using a Service – Part 1 In my previous post , I've discussed a bit about using the MVVM pattern and how to display a message or opening a dialog from within the view-model. As part of the discussion, I've shown a possible way for displaying Messages, Errors and even Dialog or Popups. In this post I would like to provide more details about the implementation of the Dialog part. Recall previous post, we have the following two methods...
תגים:, , , , , ,

Displaying user Messages, Errors and Dialogs from a ViewModel using a Service – Part 1 by Tomer Shamam

Displaying user Messages, Errors and Dialogs from a ViewModel using a Service – Part 2 Years after the invention of the MVVM pattern and people are still asking many questions about how to do this and how to do that, and specifically, how to display a Message, Error or even opening a Dialog from a View Model without accessing the view layer or visual tree. If we go straight with the MVVM pattern concept, the view-model must not directly access or manipulate the View/Visual Tree or part of it in any...

Open Window, Dialog or Message Box from a ViewModel – part 2 by Tomer Shamam

In my previous post I have shown how to open a Window bound to a view-model triggered by the view, using a simple Action. In this post I'll show how to open a Window, triggered by the view-model.   Opening a window directly by the view where the view decides when a Window should be opened, is an incorrect approach since the view shouldn't make that decision. This decision belongs to the Application layer and not the Presentation layer. What if the view shouldn't be opened because...
תגים:, , , , ,

Open Window, Dialog or Message Box from a ViewModel – part 1 by Tomer Shamam

Saying that a view-model belongs to the Application layer, and the Application layer doesn't references upper layers, and must not create or use visual objects, how can I open a Window, Dialog or any kind of Message Box on-the-fly, based on some logic triggered by the view or view-model? Well, there are several options doing that, one is using kind of service which encapsulates that, providing an interface, so the view-model don't really work directly with the upper layer or WPF. This solution...
תגים:, , , , ,

Blendability Part IV – Design Time Support for MEF by Tomer Shamam

In my previous post I've discussed the usage of MEF with the famous MVVM pattern, and demonstrated the usage of my Import markup-extension, and how it can replace the View Model Locator with an elegant syntax. In this post I would like to reveal and discuss the implementation of the Import markup-extension. Let's begin with a short story. Say that you're building an application for controlling a robot. The robot lives happily in a 2D surface, and can be move freely in between the surface's...

Blendability Part III – View Model Locator Replacement using MEF by Tomer Shamam

Everybody loves MEF! Don't you? I think MEF is one of the best things happened to the latest .NET Framework 4. Just in case that you don't know what I'm talking about, I urge you to start reading about MEF in my colleague, Bnaya Eshet, blog . He has great MEF tutorial for beginners. So why am I writing about MEF in this WPF related post anyway? Well MEF is a great framework for extensibility and object composition, also it can be used as a DI container, declaratively and imperatively...

Typed styles in WPF by Tomer Shamam

Based on my previous post, WPF Quiz #2 , I would like to shed some light on a very important mechanism in WPF related to styles. WPF has a very handy feature called typed-style, which is a style located in a resource dictionary, has no explicit key (or the key explicitly set as the type of the target) and is type specific. For an instance: < Style TargetType ="{ x : Type Button } " >     < Setter Property = "Background" Value = "Red" /> <...
תגים:, , ,

Blendability Part II – Design time support for Prism by Tomer Shamam

In my previous post I’ve presented the Blendability concept and explained how to leverage Blend’s sample-data generation in order to support view-model at design time. In this post I would like to continue with this concept and reveal a tiny research I’ve done related to design time support of Prism modules. If you’ve ever developed a WPF Composite Application using Prism you may be aware of a frustrating problem while trying to work with the Shell at design time. It always ends with something like...

Blendability Part I – Design time ViewModel by Tomer Shamam

In case that you haven't added the word ‘Blendability' to your XAML Jargon yet, I’m sure this post will inspire you doing so. The Blend-ability term describes how a piece of data model or view model is viewable or designable at design time, whether by Expression Blend or Visual Studio Designer. Building a Silverlight or WPF applications, everybody loves using the MVVM pattern. This pattern greatly decouples the view from its logic and domain model, hence enabling relatively easy unit testing...

WPF Shape Editor works with MVVM by Tomer Shamam

Haven't heard about the famous WPF and Silverlight MVVM design pattern yet? Well, I have one think to say about it: “MVVM is like women, complicated but necessary. You can’t live with it and you can’t live without it”… This time I want to concentrate on how to create a WPF shape editor custom control which works perfectly with the lovely MVVM design pattern. Lets say that you want be able to draw shapes on top of Video, Image or whatever, but this time you have a view-model behind which contains...
תגים:, , , ,

Session – Advanced Topics for Building Large-Scale Applications with Microsoft Silverlight by Tomer Shamam

In this session, John Papa talked about Silverlight application development patterns such as composite applications with Prism, developing using the Model-View-ViewModel (MVVM) pattern, and methods of implementing large, modular, multi-page applications within your team. Also he talked about frameworks created to help assist in rapid development using these patterns without sacrificing good application development patterns. MVVM is a pattern, there is no specific way to do it right. Also with Silverlight...

Blend Behaviors via Attached Properties – Part 2 by Tomer Shamam

In my previous post I’ve talked about Blend 3 attached behaviors, and explained how to use them. In this post I would like to dive into more details, explaining the differences between Triggers, Actions and Behaviors types and how to create custom triggers. Triggers and Actions Actually blend 3 attached behavior comes in two flavors: Triggers and Actions Behaviors You can think of triggers and actions as cause-and-effect relationships. Trigger represents the cause. For example we want to do something...

Blend Behaviors via Attached Properties – Part 1 by Tomer Shamam

Up until Blend 3, UI designers had difficult time prototyping a real functional UI. The main problem was the lack of behaviors. Creating a UI prototype that deals with navigation, window creation on event, animation on data changes etc, usually ends up with source code development. And when it comes to coding, UI designers had to have kind of developer colleague. XAML Tools Over time, developers (like me :) created many XAML extensions using both XAML Markup Extensions and the powerful Attached Property...

UI Virtualization vs. Data Virtualization (Part 1) by Tomer Shamam

Part 2 Being an LOB, composite applications infrastructure junky lately, I’ve been working around with several data-binding models and mechanisms to bind the data with the view, in a very efficient way of course. Sometime it was easy, and sometime it was not! I have had to find several workarounds to overcome both architectural and performance issues. In this post I would like to concentrate on Data Virtualization, and to compare it with UI Virtualization, which are very similar, yet different aspects...

Composite Application Guidance for WPF (Prism) Tour - Part 2 by Tomer Shamam

In the first post of this series I generally wrote about Prism and how can it fit in WPF applications. In this second post I would like to introduce a Home Automation application UI, show how to design it as a monolithic application, talk about the disadvantages of a monolithic application, and finally show how to design it as a Composite Application. What is a Home Automation? "For some it may be something as simple as remote or automatic control of a few lights. For others, security may be...
תגים:, , , ,
More Posts Next page »
Powered by Community Server (Commercial Edition), by Telligent Systems