Comment passer un paramètre à partir d'une Page vers une autre Page de Xamarin.Les formes?
Je veux envoyer une valeur lorsque j'appuie sur un bouton dans une forme à une autre forme par le biais de la le pattern MVVM.
C'est le fichier XAML
<Button x:Name="myButton"
Text="RandomButton"
TextColor="#000000"
BackgroundColor="{x:Static local:FrontEndConstants.ButtonBackground}"
Grid.Row="2" Grid.Column="0"
Grid.ColumnSpan="3"
Command="{Binding NewPage}"
CommandParameter="100">
</Button>
Et c'est mon ModelView class
où j'ai redirigé vers une autre forme.
class JumpMVVM :INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private INavigation _navigation;
public ICommand NewPage
{
get
{
return new Command(async () =>
{
await _navigation.PushAsync(new Page2()); //HERE
});
}
}
public JumpMVVM() { }
public JumpMVVM(INavigation navigation)
{
_navigation = navigation;
}
Le saut œuvres. Comment puis-je envoyer que "CommandParameter" à "Page2" ?
Grâce,
Dragos
OriginalL'auteur Dragos | 2015-02-02
Vous devez vous connecter pour publier un commentaire.
L'approche la plus simple serait de passer la valeur en tant que paramètre au constructeur de la Page2. Ou vous pouvez créer une propriété publique sur Page2 et d'affecter la valeur après que vous créez.
Jetez un oeil à cette developer.xamarin.com/guides/cross-platform/xamarin-forms/... il devrait vous aider à passer des valeurs de Commande
OriginalL'auteur Jason
L'utilisation de SQLite pour stocker l'objet et de l'instancier dans le nouveau ViewModel ou utiliser le centre de messagerie intégré à Xamarin.Formes pour transmettre les données entre les ViewModels indirectement.
Jason approche fonctionne, mais personnellement, le passage des données à la vue, à un autre point de vue avant de redescendre vers le modèle de vue n'est pas quelque chose que je veux faire.
SQLite Documentation
http://developer.xamarin.com/guides/cross-platform/xamarin-forms/working-with/databases/
Le Centre De Messagerie De La Documentation
http://developer.xamarin.com/guides/cross-platform/xamarin-forms/messaging-center/
Vous pouvez transmettre les données de l'affichage dans les points de vue du constructeur, comme l'a suggéré. Cela dépend vraiment de si votre application est suffisamment complexe pour que le besoin d'infrastructures supplémentaires de MVVM. Si vous voulez MVVM je souhaite mettre en garde contre couplage entre les points de vue, et de proposer de stocker les données d'un point de vue dans un modèle qui est conservé par SQLite ou certains autres de la bd locale de la structure. Ensuite, chaque point de vue lié à un modèle d'affichage dans lequel le modèle de vue peuvent accéder à la base de données pour les données seront indépendants de la vue précédente.
messagiingcenter est la meilleure solution pour le passage d'une page à l'autre lorsque des pages à onglets sont impliqués. un vote.
Je suis en désaccord. Centre de messagerie crée une violation de vue du modèle d'encapsulation et ne doit être utilisé qu'en dernier recours.
OriginalL'auteur Clint Landry
Bon exemple de passer des paramètres à ViewModel et l'obtention de résultats:
Comment puis-je passer des paramètres en entrée de Xamarin MVVM viewmodel
Pour naviguer d'un ViewModel à la page suivante (Vue):
attendent Xamarin.Les formulaires.Application.Actuel.La page d'accueil.La Navigation.PushAsync(nouvelle-Mavue());
OriginalL'auteur Sadjad Khazaie