MonoTouch dialog items do not update / repaint themselves

The section has the following:

            _favElement = new StyledStringElement (string.Empty);
            _favElement.Alignment = UITextAlignment.Center;

            if (_room.IsFavourite) {
                _favElement.Image = UIImage.FromBundle ("Images/thumbs_up.png");
                _favElement.Caption = "Unmark as Favourite";
            } else {
                _favElement.Image = null;
                _favElement.Caption = "Mark as Favourite";
            }

            _favElement.Tapped += favElement_Tapped;

      

Then when I click on the element I want the following:

        private void favElement_Tapped ()
        {
            if (_room.IsFavourite) {
                _favElement.Image = null;
                _favElement.Caption = "Mark as Favourite";
            } else {
                _favElement.Image = UIImage.FromBundle ("Images/thumbs_up.png");
                _favElement.Caption = "Unmark as Favourite";
            }   

            _room.IsFavourite = !_room.IsFavourite;
        }

      

However, the image and text do not change in the actual element when you listen to the element. Is there an update method or something to be named? I also tried to change the Accessory to Tapped and nothing changes. The properties behind reflect the correct values, though.

+3


source to share


2 answers


Assuming your code is in DialogViewController add this

this.ReloadData();

      



but in your case i recommend you use BooleanImageElement

+6


source


An alternative to reboot UITableView

is to reboot Element

using code like this (copied from Touch.Unit ):



if (GetContainerTableView () != null) {
    var root = GetImmediateRootElement ();
    root.Reload (this, UITableViewRowAnimation.Fade);
}

      

+8


source







All Articles