J'ai une application WPF avec MVVM, elle a un Ap.XAML qui ressemble à ceci.Comment lier un TextBlock à une ressource ObjectDataProvider définie dans app.xaml?
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/StyleDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
<ObjectDataProvider x:Key="SAG_POK" ObjectType="{x:Type or:SAG_POK}" />
</ResourceDictionary>
</Application.Resources>
Maintenant, sur la MainWindow.xaml je veux lier à la SAG_POK ObjectDataProvider dans Ap.xaml.
<StackPanel
DataContext="{Binding Source={StaticResource SAG_POK}}">
<TextBlock Name="ValgtSag" Text="{Binding ToStringProperty}"/>
</StackPanel>
Mon problème est que dans un de mes viewmodels, j'instancier le SAG_POK ObjectDataProvider en App.xaml avec une instance de SAG_POK.
App.Current.Resources["SAG_POK"] = SagSelecteditem;
Mais je ne peux pas savoir où mettre mes OnNotifyPropertyChanged (« SAG_POK ») J'ai essayé différents scénarios, mais aucun d'entre eux ne semble fonctionner.
Toute personne qui a déjà essayé cela avant, s'il vous plaît laissez-moi savoir des conseils, merci d'avance.
Je ne comprends pas: Pourquoi utilisez-vous un ObjetcDataProvider lorsque vous avez déjà ViewModels? Pourquoi ne pas lier directement la View au ViewModel? – SvenG
Parce que Objectdataprovider est utilisé plusieurs endroits dans l'application et parce que le viewmodel est utilisé sur la page, pas par la fenêtre. – ThomasE
Vous ne "définissez" pas une ressource comme celle-là. Il est instancié lorsqu'il est référencé et cette instance est réutilisée à chaque fois. La façon dont vous essayez d'utiliser l'ODP est bizarre. Pourquoi ne pas simplement ajouter votre instance SAG_POK en tant que ressource? Remplacez l'ODP par ce qui suit: ' ' –
Will