Memory leak using PropertyDescriptor AddValueChanged

Recently I found out that my attached property, which I am using to modify the dependency property of one of my controls, causes a memory leak. Finally it turned out that it is not the attached property, but the titled method of PropertyDescriptor I have used in my code. The AddValueChanged method allows to monitor changes on any dependency property of a component. In my case I…

By Mirek on (tags: memory leak, WPF, categories: code)

Restyle your window

Until recently, creating a custom window style in Windows Presentation Foundation was quite a challenging task. You had to implement the window’s behavior from scratch. Resizing, moving and all other typically window related functionality had to be reinvented and reimplemented just because you wanted the window header bar to look different. You could also (and still can if you …

By Mirek on (tags: style, WindowChrome, WPF, categories: code)

Keep your culture consistent among threads.

Have you ever had a problem that your multithreaded application lost a culture context ? Have you found a good solution for this? I did. My application had to support different cultures. So I simply set the required culture on my application’s current thread like this Then I noticed that worker threads, that I am using somewhere during the application runtime, don’t know anythi…

By Mirek on (tags: CultureInfo, localization, thread, categories: code)

WPF– visual states in MvvM

WPF has many rich features which facilitates making a great look&feel of the application. Unfortunately many of those features are cumbersome to implement and use when we develop in a Model - View – ViewModel architecture. In this post I will try to make you more familiar with visual states and how can we use them in our MvvM application. Visual state simply defines a state…

By Mirek on (tags: behaviors, Expression Blend, Visual state, WPF, categories: code)

Using SQL FileTable in Entity Framework

FileTable is a great new feature in SQL Server 2012 which facilitates storing and working with unstructured blob data in SQL Server. Unfortunately is not yet supported in Entity Framework, so you cannot simply use FileTable in your entity model. But there is a workaround for this inconvenience, which I am going to show you in this post. FileTable is a fixed schema regular sql t…

By Mirek on (tags: Entity Framework, FILESTREAM, FILETABLE, SQL, categories: architecture, infrastructure, code)

Handling already handled events in WPF

This is a simple trick to handle already handled routed events in WPF application. In WPF the routed events are passed down through the visual tree from the source of the event until they meet the element that can handle them. This behavior, called bubbling, is sometimes not what we expect. Imagine a situation when we have a grid and other child controls in it. We want to …

By Mirek on (tags: routed events, WPF, categories: code)

Entity Framework – lazy loading properties

In the Entity Framework we can easily enable lazy loading of navigation properties by marking them as virtual. This however applies only to properties that reference other related entity type. The framework does not support lazy loading of scalar or primitive properties. But there is a trick to fill this lack quite easily. Let’s assume we would like to lazy load some properties…

By Mirek on (tags: Entity Framework, lazy loading, shared primary key associations, table splitting, categories: architecture, code)

Mocking application settings

Last time I showed a simple way of using application settings in our wpf application. This time I would like to present you my way of testing Properties.Settings, or rather mocking it in our application tests. First of all we need to make our application code independent of the concrete implementation of auto generated Settings class. Let’s define an interface which will contai…

By Mirek on (tags: mocking, settings, testing, categories: code)

Keep your temp folder clean

Temporary folders in your system are used to store temporary files obviously. Unfortunately those temporary files, very often, stays there for ever and makes your hard drive wasted. Indeed many applications uses temp folder to store auxiliary files but do not clear it causing temp folder grow and grow. In this post I would like to present my short code snippet to keep temp fold…

By Mirek on (tags: Process, Task, Temp, categories: code)