Est-il possible de déclarer un type nom d'alias dans XAML?
-
22-10-2019 - |
Question
Est-il possible en XAML de déclarer un nom d'alias pour un type?
Laissez-moi vous expliquer avec un exemple. Compte tenu de ces déclarations de type ...
namespace Somewhere
{
public class Blob { … }
public class BlobCollection : List<Blob> {} // "type alias" in C#
}
... ce qui suit (en abrégé) XAML doit être valide:
<BlobCollection xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns="clr-namespace:Somewhere;…">
<Blob … />
<Blob … />
</BlobCollection>
Je sais déjà que je peux définir quelque chose comme des alias de type par héritage (voir code commentaire ci-dessus). Supposons que voulait faire la même chose en XAML, comment aurais-je changer le XAML afin de pouvoir se référer à BlobCollection
comme Blobs
?
<Blobs xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns="clr-namespace:Somewhere;…">
<Blob … />
<Blob … />
</Blobs>
La solution
Je ne sais pas si vous pouvez faire l'aliasing directement en XAML, mais il est plus facile d'utiliser le nom crénelage en XAML par le sous-classement simplement la collection en code (ou diable, renommer la classe de collection elle-même si elle ne sera pas négativement affecter le reste de votre code):
public class Blobs : BlobCollection {}
Il ne semble pas nécessaire d'avoir à faire cela, mais il est tout ce que je peux penser en ce moment.