Wpf itemssource not updating
Instead, this is meant to be a slightly more practical guide to squeezing performance out of WPF in ways that are probably more likely affecting you.
I have also frequently taken to creating static classes that contain nothing but highly reusable resources (think static framework classes like the Brushes class) because it’s easier to guarantee that objects are only being created once, and hopefully at app startup instead of triggered by the user interacting with the application and forcing a lazy load at an undesirable time.There is a huge cost in constructing Resource Dictionaries, and depending on where you place them, you are probably constructing many more objects than you realize.A common, sensible, and logical pattern is to keep usages of elements as close to where you use them as possible. Resources, or break up their themes into multiple Resource Dictionaries for clarity and separation.Open up your app in the debugger and play around, especially where there is slowness. Relative Source in Data Templates may also result in bindings that break initially, but then later resolve properly.Be wary of them, and try to use inherited attached properties instead of relying on Relative Source in Data Templates.Finally, there are old UI/Win Forms problems (this, this, and this) that never really went away—they’re just less likely to happen.
Every time a binding error occurs, your app hangs for just a split second as it writes out errors to the trace log.
There is no shortage of information out there on how to speed up the performance of WPF applications, but too often the focus is on the weird stuff instead of the simpler issues.
I’m not going to talk about things like writing to to optimize drawing—it’s a topic covered to death elsewhere.
If you have a lot of binding errors, then those split seconds start to add up.
Make sure to go through your bindings, especially those on Items Controls (List Views, custom grids, etc.) and verify that there are no binding errors.
Because of WPF’s references to your objects, it is not just enough to drop references to your view and view model.