Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are value converters instantiated per-binding in WPF?

Is a separate WPF value converter object instantiated for each binding that a particular value converter class is used in?


I am trying to create a two-way bit-to-boolean value converter. I would like to be able to bind a bool property (such as IsChecked) to a bit in a value type (like a ushort). I'm using the converter's parameter arguments to specify the bit. Implementing the ConvertBack() method is easy, but Convert() is little trickier.

In Convert() I need to know what the value of the entire ushort is so I can toggle just the single bit I am interested in. I was thinking of just using a member variable in my value converter class to temporarily store this whenever ConvertBack() is called, thus leading to the above question: does each binding get its own value converter instance?

like image 576
sourcenouveau Avatar asked Jan 14 '10 21:01

sourcenouveau


1 Answers

If you use a converter defined in your resources, it will be shared amongst your properties.

If you need unique converters: If you create a specific converter for a property, however, it will not be shared. Either option is workable. You can even use multiple converters (of the same type, with different keys) in your resources, which will create unique instances.

like image 82
Reed Copsey Avatar answered Sep 27 '22 18:09

Reed Copsey