Comment le recharger (reset) de l'ensemble de la page en WPF?
J'ai Request.xaml
avec bouton et avec beaucoup de comboxes, j'ai donc envie de le recharger et de le mettre combox valeurs à mettre en défaut après le clic sur le bouton. Bien sûr que je fais un peu plus de personnel.
Mon Request.xaml
code a ces parties de code:
<TextBox x:Name="TxtBlock_numRequest" TextWrapping="Wrap" Height="23"/>
<ComboBox x:Name="CmbBox_lvlPriority" Width="160">
<ComboBoxItem Content="1" Name="High" />
<ComboBoxItem Content="2" Name="Medium" />
<ComboBoxItem Content="3" Name="Low" />
</ComboBox>
En outre, le code xaml de telles événement <Button Content="Next request" Width="160" VerticalAlignment="Bottom" Background="#FF339933" Click="Button_Click" />
Et Request.xaml.cs
fichier viens de private void Button_Click(object sender, RoutedEventArgs e)
fonction.
Je l'affichage Request.xaml
de cette façon: tout d'abord, MainWindow.xaml
affiche MainPage.xaml
,
<mui:Link DisplayName="Generation" Source="/Pages/MainPage.xaml" />
,
et enfin MainPage.xaml
dispays Request.xaml
`
Est-il possible de réinitialiser l'ensemble de la page, car j'ai besoin de donner à l'utilisateur la possibilité d'ajouter de nouvelle demande de paramètres pour les paramètres existants, qui finira par être situé dans un .xml
fichier?
Il est peut être possible de réaliser via Méthode OnNavigatedTo ou par UIElement.InvalidateVisual Méthode (http://msdn.microsoft.com/en-us/library/system.windows.uielement.invalidatevisual.aspx)
- Vous avez besoin de nous montrer un peu de code. Qu'avez-vous essayé jusqu'à présent?
- Venez dès à présent @Rocketq... vous avez été un membre ici depuis assez longtemps pour savoir que nous ne posez pas de questions comme ça. Si vous ne le sais pas, alors s'il vous plaît prendre un coup d'oeil à la en Demandant page du centre d'aide.
- Êtes-vous liant à des propriétés dans le code - behind?
- sur ce site, il y a des règles à poser des questions... des règles que vous n'avez pas suivi, peut-être même pas lu. Je vous ai fourni un lien vers une page dans mon dernier commentaire. Vous devez démontrer que vous avez une certaine connaissance de la question et que vous avez au moins tenté d'accomplir vos besoins sur votre propre. Vous avez fait ni. Ce n'est pas un site où vous pouvez amener les gens à faire votre travail pour vous.
- Bon. Cependant, vous avez encore besoin d'expliquer la connexion/relation entre votre
Click
gestionnaire, le code XAML que vous avez montré etPage.xaml
. Aussi, voulez-vous réinitialiser l'élément sélectionné de votreComboBox
es, ou de réinitialiser l'ensemble de la page? - L'utilisateur peut taper du texte dans
Textbox
, mais je ne le changent pas du tout/ - Ok merci pour la mise à jour... Enfin, comment êtes-vous de l'affichage de la
Request.xaml
vue dans leMainWindow.xaml
page? - Je l'ai bien, mon problème peut être facilement résolu
- Peut-être que c'est possible... avec le droit de l'information. Je suis un peu perdu avec votre façon de travailler parce que généralement dans WPF nous manipuler des objets de données plutôt que des objets d'INTERFACE utilisateur. Dans ce cas, on pourrait actualiser une vue tout simplement par la création d'un nouvel objet qui est lié à l'INTERFACE utilisateur.
Vous devez vous connecter pour publier un commentaire.
Bien sûr c'est possible! Mais...ne vous databind les zones de liste modifiables à certains sous-jacent instance de l'objet?
Alors vous pouvez facilement le faire en "dur" et mis
Puis tout de liaison de données sera ré-initialisé avec les "valeurs par défaut".
null
en premier?page
, ce qui devrait je l'ai mis à la place de celui-ci? Et dois-je le mettre iciButton_Click
?Que je n'utilisez pas de MVVM/DataContext, donc, dans ce particulal cas il n'y a qu'une façon de sortir de définir des valeurs par défaut, c'est de le faire à la main.
Mais cette solution a l'air vraiment mauvais, mais au moins il fonctionne.
Une autre façon de résoudre ce problème est d'utiliser MVVM et la liaison de données. Cette solution a été donnée par @ZeroART:
Plus nous avons besoin de cette:
Dans le cas où vous voulez rester sur la même page mais effacer tous les champs, comme si la page du DataContext besoins de créé avec les paramètres, vous pouvez simplement ajouter une méthode comme ceci à la page ou l'utilisateur du contrôle ...xaml.cs fichier: