Arik Poznanski's Blog

Wednesday, September 7, 2011

After publishing a Windows Phone tutorial and a Silverlight tutorial, I now bring you the WPF tutorial, for the sake of XAML-based technology completeness. This 37 chapters tutorial in Hebrew completely adapted to fit WPF desktop development and using relevant source code and screenshots. The tutorial is hosted on the great Hebrew developers community site: WebMaster.org.il The tutorial is based on WPF 4 and it teaches desktop development from the first step, using Visual C# 2010 Express, provided freely by Microsoft. Following is the index for all chapters: ...

Sunday, August 28, 2011

Introduction So you want to handle somehow all the unhandled exceptions in your application. Usually you want to accomplish one of the following: Log the exception for later diagnostics Present the user an unhandled exception UI, nicer than the default You heard there’s an event you should register, or maybe you find one by mistake, but is it the correct one? Did you know there are four (!) different events for handling unhandled exceptions in the .NET framework? So what is the...

Wednesday, August 10, 2011

What’s the story? You want to convert an enum value to a bitmap image. That’s easy, here’s a solution Usually you would simply create a new value converter which has some custom code (e.g. a switch –case statement) to convert from the enum value to the relevant image. Is there a better solution? How many times have you written this kind of converter, the kind that takes a value and maps it to another value? Well, no more! I present to you: DictionaryValueConverter. A Converter that lets you define a collection...

Sunday, July 31, 2011

In the last screencasts we've seen how to use and implement IValueConverter and how to use Multi-Binding for advanced data binding scenarios. This time we continue with advanced binding and explore the benefits of PriorityBinding, a useful binding gem feature that lets you define multiple sources for your binding target value, with priorities. Please notice that the screencast was recorded in Hebrew, but the demo is clear enough to be watched without understanding a word. You can watch the screencast on YouTube HD here. Or here, embedded in my blog: ...

Sunday, July 24, 2011

In my last two screencasts I showed how you can use and implement IValueConverter to control the data binding process. This time we continue our exploration of the data binding customizations and see what does multi-binding mean and how to use and implement IMultiValueConverter. Please notice that the screencast was recorded in Hebrew, but the demo is clear enough to be watched without understanding a word. You can watch the screencast on YouTube HD here. Or here, embedded in my blog: That's it for now, Arik...

Monday, July 18, 2011

This screencast is a direct continuation of the previous one, where I showed how to use an object implementing IValueConverter in WPF. In this screencast I show how to implement IValueConverter to provide custom logic when performing data binding. Please notice that the screencast was recorded in Hebrew, but the demo is clear enough to be watched without understanding a word. You can watch the screencast on YouTube HD here. Or here, embedded in my blog: On my next screencast we will see how you to use Multi-Binding in a WPF...

Sunday, July 10, 2011

Recently, I've recorded some screencasts that demonstrates common techniques when implementing line-of-business applications in WPF. In the coming month, each week, I will release a new screencast on a topic of choice.
I've decided to start my screencasts with a few common binding techniques.
In the first screencast I give a simple demonstration on how to use IValueConverter in a WPF application. Please notice that the screencast was recorded in Hebrew, but the demo is clear enough to be watched without understanding a word.
You can watch the screencast on YouTube HD here.
Or here, embedded in my blog:On my next screencast we...

Sunday, June 26, 2011

Introduction Every WPF developer knows the situation where you have a large line-of-business application, you’ve implemented all the features and when you finally run it on real data – it runs s-l-o-w. Optimization Time! Optimization for performance is fun since a 1% change of code gets you 99% change in performance. However, finding the one location you should change can be a pain. This is why we’ve invented performance profilers. Profilers can help you pin-point the problem. WPF? WPF applications performance problems can usually be categorized to several kinds, for example, layout related,...

Thursday, May 26, 2011

Recently I came across the need to customize the look of the standard message box in the application. To do this I’ve decided to create a new class named WPFMessageBox, which will have the same interface as the standard one, will behave the same way and finally would be fully customizable, the WPF way, using control templates. Following is the result of this effort. Note: In the image you can see an example for a message box customization. Of course you are limited only by your imagination. The default control template looks like the standard...

Tuesday, May 24, 2011

Today (24.05.2011) I’ve delivered two sessions about “Using Windows 7 Features in .NET applications” in Sela Haifa Open House which was presented in Philips building in Haifa. Dear Philips (and other) developers, I had a great time presenting today's Windows 7 sessions. Thank you for coming! In the sessions I talked about how to use new Windows 7 features like the new Taskbar, sensors API, the Ribbon control supplied with Windows 7, Application restart and Recovery and plenty of Multi-Touch. We’ve seen numerous examples, mainly in C++ Win32, WinForms and...