RadBusyIndicator causes page to lock up on page navigate back

9 posts, 0 answers
  1. Anthony
    Anthony avatar
    8 posts
    Member since:
    Nov 2012

    Posted 13 Nov 2012 Link to this post

    (WP7)

    I've got a curious page lock where all of the controls freeze (TextBox, CheckBox, RadListPicker) on hitting the backbutton to the page after navigating away from the page.

    I've implemented the same pattern that we use elsewhere in the application and which works and for the sake of completeness I'll add the code below:

    <Grid x:Name="LayoutRoot">
    <Grid>
    yardy-yardy
    </Grid>

          <telerikPrimitives:RadBusyIndicator Content="{Binding LoadingText}" IsRunning="{Binding IsBusy}"/>
      </Grid>

    ViewModel:

            public string LoadingText
            {
                get
                {
                    return AppResources.ProgressTextLoading;
                }
            }

    ViewModelBase:

            private bool _isBusy;
            public virtual bool IsBusy
            {
                get
                {
                    return _isBusy;
                }
                set
                {
                    if (_isBusy != value)
                    {
                        _isBusy = value;
                        RaisePropertyChanged("IsBusy");
                    }
                }
            }

    IsBusy is set to false on NavigatingFrom the page.

    Any tips would be grateful, it is a commercial project that I am working on as a contractor so anything will be much appreciated.

    For now the work around is to comment out the control:

    <!--<telerikPrimitives:RadBusyIndicator Content="{Binding LoadingText}" IsRunning="{Binding IsBusy}"/>-->

    Kind regards!
  2. Deyan
    Admin
    Deyan avatar
    2039 posts

    Posted 14 Nov 2012 Link to this post

    Hi Anthony,

    Thanks for writing.

    When the Busy Indicator is running it blocks the input to the elements over which it appears. When the IsRunning property is set to false, the input should be unblocked.

    I guess you are experiencing issues because of the blocked input. I am, however, not quite sure why this happens based on the code you have pasted. Can you please share with us a working sample which demonstrates the issue so that we can directly take a look at the issue and see how we can help?

    Note that you will have to open a new support ticket in order to be able to attach your project.

    I hope this helps.

    Greetings,
    Deyan
    the Telerik team
    Have a suggestion or face a problem - you can use the Ideas & Feedback portal to submit ideas, feedback and vote for them.
  3. DevCraft banner
  4. Anthony
    Anthony avatar
    8 posts
    Member since:
    Nov 2012

    Posted 14 Nov 2012 Link to this post

    Hi Deyan,

    Thanks for your quick reply, however I'm not able to upload the solution here for commercial reasons (15 projects in the solution, it would be giving away the crown jewels, not to mention the associated security risks) but is there another avenue to do something similar? I'm on location with my client so getting permission for something else is quite possible.

    But from your info I have double checked, the IsRunning property is indeed set to false on Navigating away from the page, and there is nothing in the ViewModel (or OnNavigatedTo code behind) that could possibly set IsRunning to true on a mere back back button press.

    Thanks!
  5. Deyan
    Admin
    Deyan avatar
    2039 posts

    Posted 16 Nov 2012 Link to this post

    Hello Anthony,

    Thanks for getting back to me and for the additional details.

    From what you are saying I cannot really determine the reason for the undesired behavior. If you manage to prepare a vary simple project that reproduces the scenario and send it to me I will take a look at it and see how I can help. Is that possible?

    Thanks for your time.

    Kind regards,
    Deyan
    the Telerik team
    Have a suggestion or face a problem - you can use the Ideas & Feedback portal to submit ideas, feedback and vote for them.
  6. Anthony
    Anthony avatar
    8 posts
    Member since:
    Nov 2012

    Posted 19 Nov 2012 Link to this post

    Thanks Mate, I'll try to put one together!

    Kind regards,

    Anthony
  7. Anthony
    Anthony avatar
    8 posts
    Member since:
    Nov 2012

    Posted 19 Nov 2012 Link to this post

    Deyan,

    I've started to create a strip down of this but by the time I consider all of the dependency injection that I'd have to moq, as well as the services, enums and other such things that are quite dispersed, etc, I can see one or two days work (and even then may not be able to reproduce the bug despite that it just sits there as the last child in the tree in Layout Root and just bound to the same IsBusy property in the base that the rest are bound to) ... and yet I could build a new templated control to do the same as the Telerik control, in about 45 minutes ... so regrettably I'm taking the second route.

    But thanks for your time!

    Kind regards,

    Anthony
  8. Deyan
    Admin
    Deyan avatar
    2039 posts

    Posted 20 Nov 2012 Link to this post

    Hi Anthony,

    Thanks for getting back to me. It's good that you have taken your own approach to solve the case.

    Anyway, we would be interested in getting to know what causes the erroneous behavior on your side so if you find time to take a look at it at some point - do not hesitate to share your feedback.

    Regards,
    Deyan
    the Telerik team
    Have a suggestion or face a problem - you can use the Ideas & Feedback portal to submit ideas, feedback and vote for them.
  9. Anthony
    Anthony avatar
    8 posts
    Member since:
    Nov 2012

    Posted 11 Dec 2012 Link to this post

    Hi Deyan,

    The fix was quite curious:

    In a method in the ViewModel where I was setting IsBusy to false, rather than explicitly going IsBusy = false, I called a method to do the same, vis-a-vis:

    SetIsBusyFalse();

    because I'd anticipated having to put some other stuff in there (such as DataLogging).

    public void SetIsBusyFalse()
    {
    this.IsBusy = false;
    }

    The curious thing that resolved the issue is that I removed the SetIsBusyFalse() method call and replaced it with "this.IsBusy = false;" and the freezing stopped.

    Can't figure out why but it works and has now passed the testers so I'm happy.

    ... Consumed a lot of manhours though :) ...

    Kind regards and thanks for your time!
  10. Deyan
    Admin
    Deyan avatar
    2039 posts

    Posted 12 Dec 2012 Link to this post

    Hi Anthony,

    A curious case indeed.

    We will consider this thread closed.

    Do not hesitate to get back to us in case of further questions.

    Greetings,
    Deyan
    the Telerik team
    Have a suggestion or face a problem - you can use the Ideas & Feedback portal to submit ideas, feedback and vote for them.
Back to Top
DevCraft banner