La liaison d'une fonction à l'événement MouseDown en xaml?
im Travaillant sur l'apprentissage de WPF et C# programmation en ce moment mais je suis en difficulté avec la compréhension des liaisons etc.
Je suis bloqué sur "liaison" fonctions ou commandes à mon XAML objet qui est dans une grille.
<Image x:Name="BlkRook1" Source="../Data/BlkRook.png" Grid.Row="{Binding Path=ChessPieces[0].Row}" Grid.Column="{Binding Path=ChessPieces[0].Column}" MouseDown="{Binding Path=ChessPieces[0].Move()}"/>
Le code MouseDown="{Binding Path=ChessPieces[0].Move()}"
Ne fonctionne pas, mais affiche ce que im essayant d'arriver à
Dans mon viewmodel j'ai défini une liste que j'ai rempli avec les instances de mon diffrent chesspieces, puis la planification de la gi sur la liaison de chaque image à une instance de cette liste.
im essayant de faire est de lier les événements MouseDown fonction à l'heure actuelle, il semble que si je place la fonction dans la Mainwindow.xaml.cs fichier, il peut accéder. Mais je veux qu'il soit en mesure d'y accéder à partir du modèle
Mainwindow.xaml.cs
namespace TheGame.Views
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new ChessBoardViewModel();
}
}
}
La BlkRook objet a défini la Ligne, la colonne, le nom et la fonction déplacer pour le moment.
Message D'Erreur:
"'TheGame.Les vues.MainWindow " ne contient pas une définition pour 'Move' et aucune méthode d'extension 'Move' acceptant un premier argument de type 'TheGame.Les vues.MainWindow' a pu être trouvé (vous manque une directive using ou une référence d'assembly?)"
Alors.. Comment puis-je lier une fonction qui est définie dans un Modèle objet en XAML objet?
Grâce
/Martin
- Pourquoi ne pas lier le point de Vue de la commande d'un nouveau ViewModel méthode qui invoque ensuite le Déplacement de l'objet de Modèle? Donc: View-ViewModel-Modèle
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas se lier à des méthodes. Vous êtes en utilisant MVVM donc, je vous suggère d'utiliser des propriétés attachées en combinaison avec les commandes. Vous pouvez également utiliser la MouseBinding classe: http://msdn.microsoft.com/en-us/library/system.windows.input.mousebinding(v=vs. 110).aspx.
Commandbinding s'explique assez bien ici: http://www.danharman.net/2011/08/05/binding-wpf-events-to-mvvm-viewmodel-commands/
Button
plus. Aussi, où sont les arguments de laMouseDown
événement, comme une indication de quel bouton a été pressé (sans avoir recours à de la 3e partie des bibliothèques comme celle mentionnée dans l'article lié)?CommandParameter
propriété de laInvokeCommandAction
.