Basically, what I'm trying to do is this. I've got an "export" wizard with several export types; some of the exports run immediately, & some run in a background worker thread. The wizard's path is like
The Progress page's Selected event is where it begins the actual export. For exports that use a worker thread, the worker thread does its thing, updating a progressbar, & when done, it increments SelectedIndexBindable to automatically move the wizard forward to "Result" (via the attached behavior discussed above). This works properly. For exports that don't use a worker thread, the Progress page's Selected event just does the (nearly instant) export & immediately increments SelectedIndex, so to the user it should look like the Progress dialog just pops up for an instant (or maybe not at all), then moves straight to the result.
However, when the Progress page's Selected event is fired, the SelectedPageChanged event has *not* yet fired (despite the SelectedPage having apparently already changed), so SelectedIndexBindable still corresponds to the page *before* the progress page. So incrementing it does nothing, as you're just incrementing it "to the progress page" (which is where it should already be).
Does that make sense?