Lately I discovered a change in Silverlight 2 (from beta 2) in the handling of names in XAML. If you create an object with a Name property, you cannot set it in XAML (not normally that is).
For example, you have this class:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
If you use it in XAML like this the Name property doesn’t get set:
<my:Person
Name="jefke"
Age="23">
</my:Person>
Instead XAML will create a reference called jefke pointing to this object.
This sucks of course because there are tons of objects out there that have a Name property, and now we cannot use them in XAML. This is also different from WPF, because there you can use a Name property, and use x:Name to set its namescope. The Name property will still get set normally; to make Name equivalent to x:Name you would use the RuntimeNamePropertyAttribute.