MISE À JOUR 3ne mettez pas à la fin de l'avant lors de l'écriture au sein de fonction liée ICommand
« Je veux que le texte de cette zone de texte doit être affiché dans une autre zone de texte (dans une autre vue) »
Le deuxième zone de texte dans une autre vue est destiné à montrer d'autres informations qui sont liées à la première zone de texte, mais pas la copie. Ainsi, le contrôle utilisateur contient une zone de texte pour, disons, le code de bus. Une fois que j'entre le code de bus, le tabulation déclenchera une extraction de la base de données pour d'autres détails tels que le nom du bus, la destination du bus, le modèle de bus, etc ... La boîte de texte other qui est dans une autre vue affiche alors le nom du bus. Toutes les zones de texte suivantes affichent la destination et ainsi de suite. Lorsque la commande est invoquée et que j'essaie d'écrire sur la propriété BusName, elle est assignée (et j'appelle Notify ("BusName")) mais elle n'apparaît pas sur l'interface utilisateur.
Espérons que c'était plus clair. Désolé pour toute confusion causée :).
MAJ2 - Réponse à blindmeis
Merci pour votre réponse si cela semble pas être ce que je cherchais. L'onglet est essentiel car c'est ainsi que la gestion veut que leurs pages soient peuplées, c'est-à-dire que lorsque vous saisissez une zone de texte 'code' après avoir entré le code, il utilisera le code pour extraire les données de la base de données . Cela ne semble pas avoir le comportement de tabulation en elle. Comme pour la propriété de dépendance 3, il est dans mon code d'origine, je ne l'ai simplement pas inclus ici parce que la valeur dans la première zone de texte (zone de texte de tabulation de contrôle utilisateur) n'est pas pertinente au problème. Simplement, ce que j'essaye d'accomplir est que la deuxième zone de texte doit remplir quand vous sortez de la première zone de texte.
Je pouvais le faire avec un eventhandler, mais je voulais utiliser des commandes. Je pense maintenant que peut-être les commandes ne sont pas la façon d'aller ici et je devrais passer à l'aide d'un gestionnaire d'événements. Veuillez indiquer si vous avez encore des idées sur la façon de remplir la seconde zone de texte lorsque vous mettez un onglet en dehors de la première (en plaçant un point d'arrêt dans le remplissage, vous verrez que la propriété est affectée.). Si je n'ai pas bien compris ou si j'ai manqué quelque chose ici, s'il vous plaît faites le moi savoir. Merci!
MISE À JOUR! J'ai créé une solution VS2013 imitant mon code, ce qui reproduit le problème. Il est à ce lien lecteur Google public en tant que fichier zip (prend quelques secondes pour que l'icône de téléchargement à paraître):
https://drive.google.com/file/d/0B89vOvsI7Ubdbk85SVlvT3U2dVU/view?usp=sharing
Vous verrez que la case 2e texte ne met pas à jour malgré le stockage des biens liés la nouvelle valeur.
Appréciez grandement toute aide. Merci d'avance.
Original post:
J'ai un contrôle TextBox auquel j'ai attaché une commande par clé de liaison pour aller traiter certaines actions (dans une méthode que la commande a été liée à) lorsque l'utilisateur clique onglet dans la zone de texte (onglets).
J'ai d'autres contrôles dans cette page qui sont boiund aux propriétés dans le viewmodel que j'écris dans cette fonction connectée.Quand j'écris mes propriétés dans le constructeur ou quelque part 'outside' cette invocation de commande semble fonctionner correctement et les valeurs s'affichent sur la page, mais quand je les écris dans cette invocation de commande, les propriétés dans le vm contiennent les valeurs t apparaître sur l'interface utilisateur
Des idées pourquoi et comment résoudre?
Merci beaucoup à l'avance
De XAML:
<TextBox Name="txtCode" Text="{Binding Path=CodeValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<TextBox.InputBindings>
<KeyBinding Key="Tab" Command="{Binding RetrieveRecordCmd}" > </KeyBinding>
</TextBox.InputBindings>
</TextBox>
De VM:
RetrieveRecordCmd = new GSSCommand(RetrieveRecord, param => this.CanExecuteRetrieveRecordCmd);
fonction liée de commande:
public void RetrieveRecord(object obj)
{
objPie = null;
//Check if a record exists for that code
gssSvcMethodStatusBase = gssSvcClientBase.ReadPies(ref gssSvcGlobalVarsBase, out objPie, out grfaBase, CodeValue);
if ((objPie != null)) // && (objPie.DateCreated > DateTime.MinValue))
PopulatePage(objPie);
else if (objPie == null)
InitiateCreateNew();
else
return;
}
Votre commande de commande XAML est liée à quelque chose appelé 'TextBoxTabOutCmd'. Cela existe-t-il quelque part dans votre ViewModel, ou quelque chose d'autre se passe-t-il entre cette liaison et RetrieveRecordCmd? – goobering
Avez-vous cassé le point RetrieveRecord? Est-ce qu'il tire? – goobering
Oui, et toutes les propriétés sont écrites – Coder2013333