Cela sonne comme il devrait être simple. J'ai un Page
déclarée dans le code XAML de la manière normale (c'est à dire avec "Ajouter un nouvel élément...") et il a une propriété personnalisée. J'aimerais définir cette propriété dans le code XAML de la page.
En essayant de le faire de la même manière que je l'avais mis toute autre propriété ne fonctionne pas, pour des raisons que je comprends, mais ne savent pas comment travailler en rond. Seulement alors, nous avons quelque chose de concret pour en parler, voici quelques (invalides) XAML. J'ai réduit tout vers le bas autant que possible - à l'origine, il y avait des attributs tels que le concepteur de la taille, mais je crois que ceux qui ne sont pas pertinents pour ce que je suis en train de faire.
<Page x:Class="WpfSandbox.TestPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
MyProperty="MyPropertyValue">
</Page>
et le code-behind:
using System.Windows.Controls;
namespace WpfSandbox {
public partial class TestPage : Page {
public TestPage() {
InitializeComponent();
}
public string MyProperty { get; set; }
}
}
Message d'erreur:
Erreur 1 La propriété 'MyProperty" n'existe pas dans l'espace de noms XML 'http://schemas.microsoft.com/winfx/2006/xaml/presentation'. La Ligne 4 En Position 7.
Maintenant je sais pourquoi c'est un échec: l'élément est de type Page
, et Page
n'ont pas une propriété appelée MyProperty
. C'est seulement déclaré en TestPage
... ce qui est spécifié par l' x:Class
d'attribut, mais pas par l'élément lui-même. Pour autant que je suis conscient que, cette configuration est requise par le code XAML modèle de traitement (c'est à dire l'intégration de Visual Studio, etc).
Je pense que je pourrais gérer cela avec une dépendance de la propriété, mais qui se sent un peu comme exagéré. J'ai pu également utiliser une propriété existante (par exemple, DataContext
), puis de copier la valeur dans la propriété personnalisée dans le code plus tard, mais qui serait assez laid.
Le dessus est un WPF exemple, mais je soupçonne les mêmes réponses seront d'application en Silverlight. Je suis intéressé dans les deux - si vous postez une réponse qui vous savez travailler dans l'un mais pas l'autre, je lui en serais reconnaissant si vous m'indiquent que dans la réponse :)
Je suis en train de préparer pour le coup moi-même quand quelqu'un poste un absolument solution triviale...