2010-11-22 8 views
0

Je dois ajouter un contrôle utilisateur à une fenêtre lors de l'exécution. Maintenant, mon problème est que j'ai besoin d'instancier la fenêtre d'abord, puis ajouter le contrôle utilisateur à cette fenêtre. Après tout cela, la fenêtre ne sera montréComment ajouter un contrôle utilisateur à une fenêtre lors de l'exécution?

Mes pensées était le suivant:

Créer l'instance de contrôle utilisateur premier:

 string managedClassName = "SupplierModule.Views.SupplierInvoiceView, SupplierModule"; 

    var userControl = Activator.CreateInstance(Type.GetType(managedClassName)); 

Ensuite, créez la fenêtre:

 NavigationWindow navigationWindow = new NavigationWindow(); 

puis ajoutez le contrôle utilisateur à la fenêtre.

Donc, mon problème est, comment puis-je ajouter ce contrôle utilisateur à la fenêtre?

Je ne sais pas si je l'ai approché de la bonne façon. Donc si c'est faux, veuillez me diriger dans la bonne direction.

Merci

Répondre

1

Vous utilisez WPF et MVVM

1- Définir ci-dessous le code dans le Xaml

<ContentControl 
      Margin="10,0" 
      Grid.Column="1" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Stretch" 
      Content="{Binding TableDetailsDataFormView}"/> 

2- Définir une propriété TableDetailsDataFormView dans votre ViewModel.

3- Affectez la propriété TableDetailsDataFormView lorsque vous avez créé votre ViewModel.

4- Je suppose que vous avez mis en œuvre INotifyPropertyChanged alors appelé la méthode pour notifier l'correspond le UI

+0

Mon NavigationWindow est dans un projet différent dans ma solution d'où je le crée maintenant. Y at-il une raison pour laquelle je ne peux accéder à aucune méthode ou propriété dans la fenêtre? – Willem

0

Si vous voulez utiliser le NavigationWindow, vous devez utiliser une page à laquelle vous ajoutez le contrôle utilisateur. Commencez par créer un Page, puis définissez Page.Content sur le contrôle utilisateur, puis utilisez Navigate(page) pour accéder à cette page.