Region not found when using 3rd party controls

Topics: Prism v2 - WPF 3.5
Aug 9, 2009 at 8:27 PM

Hello,

I'm having a problem with PRISM v2 detecting a region defined in XAML when using a 3rd party controls. There are a few posts here similar, but are probably a bit old and refer to PRISM v1.

In my project the Shell just as a ContentControl:-

<Window>
    <ContentControl cal:RegionManager.RegionName="ShellWindow">

This Region is detected with no problem.

 

A Module is loaded which defines a new Region. If this is Microsoft controls, there is also no problem, and the 2nd region is detected.

<UserControl>
     <ItemsControl cal:RegionManager.RegionName="MainWindow">

 

However, if a 3rd party control is placed in the Module's View, the 2nd Region is not detected.

<UserControl>
    <ThirdPartyControl>
           <ItemsControl cal:RegionManager.RegionName="MainWindow">

 

 

Can you suggest what the problem is?

If someone would explain how the Regions are detected by the CAL libary from the XAML it would help me debug.

I can see that RegionManager:Add(IRegion region), is not being called a second time when using the 3rd party controls. But need some help in the steps that preceed it,

 

Thanks

John

 

 

Aug 10, 2009 at 1:43 PM

I saw some message traffic on this topic a while back - I found it for you at

http://compositewpf.codeplex.com/Thread/View.aspx?ThreadId=29822

It is addressed by the gurus so it might give you a good starting place.

Aug 10, 2009 at 7:09 PM

Hello billrat,

Thanks for posting. I did look at your SDMS, but I think it's VS Team edition, so I can't open.

I did find this post earlier, and check to see InitializeComponent() was present in my code.

But as it was a Prism v1 post in 2008, it did not seem to answer my specific problem.

Anyway, I've now tried a lot of MS nested controls, and the RegionName is found without problem, whereas with the 3rd-Party, it's not.

I am convinced now that the issue is the System.Windows, LogicalTreeHelper.GetParent not being supported by the 3rd party controls.

See CAL, FindRegionManager(...),

But in rereading post and the 305 page doc, I can see I can set the RegionName in code. Which I have done, and it works.

 

So, I'd like to know whether you think LogicalTreeHelper should work on 3rd party controls, and if so I post a bug report with them

 

Thanks

John

 

 

Aug 11, 2009 at 12:51 PM

I definately would tell the 3rd party folks their product does not support PRISM - I trust they will make it a requirement to be resolved.