ThinkGeo.com    |     Documentation    |     Premium Support

Move popup without refreshing

Is it possible to "move" an open popup from one location to another?  I have a custom popup that contains a tab control.  Usually the tabs represent all the features found at one location, but ocassionally the tabitems represent all "like features" that could have different pointshapes.  I would the like the user to be able to select a tab in the popup control and have the popup "move" to the pointshape represented by the tab.  I would like this to happen without the popup being rerendered (which causes bindings to be reset and templates to be reapplied).  I also cannot figure how to change to origin point of a popup without calling its base constructor.


 


Thanks,


  Tom 



Thomas, 
  
 Thanks for your questions! 
  
 I think your requirements is that you want to drag the pop up to any locations where you want. Currently we don’t have an API to implement it directly, I will have a investigations on it if it is possible to do, if there are any results I will let you know, 
  
 Thanks, 
  
 Scott,

Hi Thomas, 
  
 You can just modify the popup’s “Position” property then call the “Refresh” method of the PopupOverlay that contains the popup. 
 As I tested, changing the “Position” property value and calling the “Refresh” method does not cause bindings to be reset and templates to be reapplied. 
 Please let us know if this approach works for you. 
  
 Regards, 
 Tsui 


 Thank you for the position property clue.  I thought that was WPF specific and I did not know you were using it for popups.  If I change the position property (in worldcoords, YEA!) I am noticing the popup moves without calling refresh.  You are right that the template is not reapplied with a position change, but if you have to pan the map to center the popup, the template is reapplied and bindings are reevaluated.  Therefore, I went away from listening to the tabselecteditem changed event and am now using mousetriggers to raise a bound command.  I pass the tabitem as a parameter to this command.  Then I created a new observable property in my model (selectedTab) that is databound to the tab control's selecteditem.  When the command is triggered via leftmouseclick I get the tabitem and set the selected property, and let WPF databinding magic do the rest.  This keeps the selected tab even after a template reapply.


 


Thank you again for your guidence and I hope others find my solution helpful.



Thomas, 
  
 That’s great to hear it is helpful to you, I think currently you are working on your project and if you encounter any new problems please let us know again, 
  
 Thanks, 
  
 Scott,