views:

554

answers:

2

In my Silverlight project, I would like to make an assembly which contains .xaml that can't be seen from outside of the assembly. However, there is no clear way I can do this. When I modify the access modifier on the .xaml.cs file, the compiler tells me:

Partial declarations of "My xaml class here" have conflicting accessibility modifiers

In the xaml file itself, there doesn't seem to be a place to put my access modifier. In short, how do I set the class associated with my xaml file to internal.

+1  A: 

But isn't this illogical because it would make the UI that the xaml encapsulates completely inaccessible?

BC
It would make the class inaccessible from other assemblies. This is useful if you want to create a library but only want to expose some of the controls in it.
emddudley
+6  A: 

You need to add a x:ClassModifier="internal" in the UserControl tag of the XAML file if you change the visibility of the class in the .cs file to internal.

The file generated from the XAML file (e.g. MyControl.g.cs) needs to match the code-behind file (e.g. MyControl.cs). x:ClassModifier allows you to control the visibility of the part declaration in the MyControl.g.cs file.

chuckj