Do I need two xmlns:local="clr-namespace"?

These are XML namespace mappings. With the following:

xmlns:local="clr-namespace:PhoneApp"

The local part is the XML namespace, whilst PhoneApp is the namespace from your .NET code. With this definition in place you can then reference classes from this namespace in XML as follows:

<local:MyClassInPhoneAppNamespace/>

Because the local part is simply a name, you can change it to whatever you like:

xmlns:fish="clr-namespace:PhoneApp"

And use as follows:

<fish:MyClassInPhoneAppNamespace/>

This should mean that you no longer have collisions.


"local" in this case is simply a friendly name for the namespace you are referencing. It is completely interchangeable.