Je me demandais si je pouvais avoir un modèle de fenêtre enfant dans la section de ressources de la fenêtre principale et si ses propriétés étaient liées au modèle principal. Je simple propriété de chaîne sur le premier modèle et chaîne DependencyProperty
sur le deuxième et a essayé de lier cette façon:Liaison de la propriété de ressource à la propriété DataContext
<Window.DataContext>
<local:MainWindowModel x:Name="MainWindowModel"/>
</Window.DataContext>
<Window.Resources>
<local:SecondWindowModel x:Key="SecondWindowModel" SecondString="{Binding FirstString}"/>
</Window.Resources>
SecondWindowModel
est un DependencyObject
et SecondString
est un DependencyProperty
comme WPF exige. Mais SecondString
est toujours nul, son setter n'est jamais appelé. Pourquoi?
Votre estimation est exacte, mais peut-il y avoir une solution de contournement? –
Une façon (très!) Maladroite de le faire serait d'ajouter SecondWindowModel comme datacontext d'un contrôle, donnez ax: Name (comme x: Name = "localContext") à votre fenêtre et liez SecondString (comme "{Binding ElementName = localContext Path = DataContext.FirstString} "). Mais honnêtement, je ne pense pas que le viewmodel d'un WPF est destiné à être utilisé de cette façon. – Seb