J'utilise Mvvm-Light et j'ai ignoré le fonctionnement de XAML jusqu'à maintenant.Comment remplacer le DataContext ViewModel pour que je puisse lier des objets dans la Vue (Mvvm-Light)?
Voici mon XAML
<phone:PhoneApplicationPage.Resources>
</phone:PhoneApplicationPage.Resources>
<Grid x:Name="LayoutRoot" Background="Transparent">
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,14">
<TextBlock x:Name="ApplicationTitle" Text="{Binding SecuritySystemName}" Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text="{Binding PageName}" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
<TextBlock Name="textCode"
DataContext="{WHAT GOES HERE to bind to properties on my View (SecurityPanelPage class)}"
Text="{Binding Path=Code}" />
</Grid>
{Reliure SecuritySystemName} et {Reliure PageName} lier correctement à mon ViewModel (SecuirtyPanelViewModel). Mais je veux {Binding Code} dans l'élément TextBlock à lier à mon VIEW (pas ViewModel).
J'ai recherché et recherché des exemples de documentation & qui expliquent la syntaxe et les valeurs supportées par DataContext et Binding. Rien n'a aidé. Tout ce que je veux savoir, c'est comment définir un DataContext (ou spécifier quelque chose dans une {Binding ...} qui pointera vers mon objet View. J'ai essayé "Self" et toutes sortes de "RelativeSource" les choses, mais le travail ne devinette est pas productif car le voyage aller-retour dans le débogueur avant que le XAML est analysé est trop long
Merci
MISE à JOUR -... J'ai trouvé une réponse qui me fait bouger, mais je reste ne pas grok donc j'ai des questions de suivi pour les belles affiches ci-dessous ..
Voici ce qui fonctionne:
<phone:PhoneApplicationPage x:Name="ThisPage">
<TextBlock Name="textCode" Text="{Binding Code, ElementName=ThisPage"/>
</phone:PhoneApplicationPage>
J'ai trouvé cette astuce ici: http://bursjootech.blogspot.com/2007/12/bind-from-xaml-to-local-property-in.html
Il a posé la question différemment: comment "Bind de XAML à une propriété locale dans le code-behind".
Je ne comprends toujours pas les deux solutions fournies ci-dessous. Donc plus de questions ci-dessous ...
Ok, quand je lis votre réponse, je ne l'ai pas Grok il. Je pensais que vous proposiez quelque chose de différent et votre échantillon n'était pas complet. Mais maintenant je vois que vous fournissez la même solution que j'ai trouvée ci-dessus. – tig
Permettez-moi de demander un suivi: Dans l'exemple utilisant DataContext, quelle autre syntaxe de DataContext obtiendra à la racine? Je jure que j'ai vu quelque chose avant, mais je ne m'en souviens plus. – tig
Oh, et vous avez raison à propos de ces choses appartenant à mon ViewModel. J'étais fainéant et j'ai été distrait en voulant savoir comment faire. Je déplace maintenant tout le code vers ma machine virtuelle où elle appartient. – tig