J'essaie de partager une ressource ObjectDataProvider entre mon application principale et un contrôle utilisateur. Je définis l'odp dans un fichier de dictionnaire de ressources distinct qui est inclus dans l'application et le contrôle utilisateur.Partage d'un ObjectDataProvider dans WPF
<ObjectDataProvider x:Key="AsymmetricFrameHolder"
ObjectType="{x:Type data:DataFrameAsymmetric}"/>
Je tente d'accéder à cela dans l'application principale comme suit:
ObjectDataProvider odp = (ObjectDataProvider)Resources["AsymmetricFrameHolder"];
return (DataFrameAsymmetric)odp.ObjectInstance;
et se lient dans le contrôle de l'utilisateur avec:
<Grid Name="grid" Height="Auto" Width="Auto"
DataContext="{StaticResource AsymmetricFrameHolder}">
Puis:
<TextBox Name="TextBox_Length" Grid.Row="0" Grid.Column="1"
Text="{Binding Path=Length }"/>
Cela crée 2 instances de DataFrameAsymmetric. Un dans l'application principale et un dans le contrôle de l'utilisateur.
Comment puis-je définir le programme afin qu'une seule instance partagée soit créée?
En fait, ce code m'a beaucoup aidé! Je me demandais comment rafraîchir un objet objectdataprovider. Merci! – wonea