Quelle est la Différence Entre x:Key, x:Nom et x:UID dans un DataTemplate dans WPF?
Je suis en train de créer des dynamiques onglets dans WPF, et je suis en train d'écrire un contenu de modèle qui sera le seul applicable à certaines onglet articles. Je veux être en mesure de créer un identifiant pour le contenu de modèle pour que je puisse y faire référence dans le code derrière, et donc que je peux appliquer de manière sélective à seulement quelques onglets dans une seule TabControl. Cependant, je suis confus au sujet de ces trois différents xaml identifiants. Quelle est la différence, et qui est le mieux pour mes fins?
Vous devez vous connecter pour publier un commentaire.
Le "x:" spécifie l'espace de noms, ce qui serait, dans votre cas, le plus susceptible d'être "http://schemas.microsoft.com/winfx/2006/xaml", Vous verrez l'alias déclarée en haut de votre Fenêtre.Fichier Xaml. x:Key, x:Nom, prénom, etc sont toutes les directives dans cet espace de noms.
En revanche, le Nom de l'attribut (sans le x:) est une propriété de dépendance déclarée dans le FrameworkElement classe.
x:Key
Identifie de manière unique les éléments qui sont créés et référencés dans un XAML défini dans le dictionnaire. L'ajout d'un x:valeur de la Clé de XAML élément object est la façon la plus commune pour identifier une ressource dans un dictionnaire de ressources, par exemple dans un WPF ResourceDictionary.
x:Nom
Identifie de manière unique XAML-éléments définis dans un XAML portée de nom. XAML portées de nom et de leur caractère unique, les modèles peuvent être appliqués à des objets instanciés, lorsque les cadres de fournir des Api ou de mettre en œuvre les comportements que l'accès le code XAML-créé le graphe d'objet au moment de l'exécution.
x:Uid
Fournit un identificateur unique pour les éléments de balisage. Dans de nombreux scénarios, cet identifiant unique est utilisé par le code XAML de la localisation des processus et des outils.
Notes
J'ai seulement vu x:Uid lorsqu'une application doit prendre en charge différentes langues avec un dictionnaire de ressources.
Pour les deux autres (x:Key et x:Name), une règle de base est d'utiliser x:Nom pour les éléments du Cadre et x:Key pour les styles, les modèles, et ainsi de suite. Donc pour répondre à votre question, si vous nommez un modèle lui-même, vous devez utiliser la x:Key directive. Les contrôles déclarés dans le modèle serait d'utiliser la x:Nom directive.
Une liste complète de tous les Xaml directives est donné à Espace De Noms Xaml
Si vous souhaitez appliquer le modèle à tous les onglets de votre page, vous pouvez utiliser x:Type de, mais si vous voulez l'appliquer à quelques onglets et de ne pas tous les onglets que vous pouvez utiliser x:Key.
Généralement, vous utiliserez x:Key lorsque vous voulez l'utiliser comme StaticResource dans votre fichier xaml. Vous devrez fournir les x:Nom à un contrôle ou d'un modèle lorsque vous voulez consulter dans votre code-behind. Je n'ai jamais utilisé X:Uid, mais c'est ce que MSDN dit,