Die Bindung einer Funktion an das MouseDown-Ereignis in xaml?
im Arbeiten auf lernen, WPF und C# zu Programmieren, im moment, aber im kämpfen mit Verständnis Bindungen etc.
Ich bin stuck on "binding" - Funktionen oder-Befehle an meiner XAML-Objekt, das in einem raster.
<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()}"/>
Den code MouseDown="{Binding Path=ChessPieces[0].Move()}"
funktioniert nicht, aber zeigt, was ich versuche zu erreichen
In meinem viewmodel ich habe eine Liste, die habe ich gefüllt mit Instanzen meiner verschiedenen Spielmarken, und dann im Planung auf die Bindung jedes Bild ein Beispiel aus dieser Liste.
ich versuche zu tun ist, binden die MouseDown-Funktion in dem moment, es scheint, dass, wenn ich die Funktion im Hauptfenster.xaml.cs-Datei zugreifen kann. Aber ich will, dass es in der Lage sein Zugriff auf diese aus dem Modell
Mainwindow.xaml.cs
namespace TheGame.Views
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new ChessBoardViewModel();
}
}
}
Den BlkRook-Objekt definiert hat, Zeile, Spalte, name und Funktion bewegen im moment.
Fehlermeldung:
"'TheGame.Blick.Hauptfenster' enthält keine definition für "Bewegung" und keine Erweiterung Methode "Move" akzeptiert ein erstes argument vom Typ 'TheGame.Blick.MainWindow' gefunden werden konnte (fehlt eine using-Direktive oder ein Assemblyverweis?)"
So.. Wie kann ich die bind-Funktion, die definiert wird, in eine Modell-Objekt, um ein XAML-Objekt?
Dank
/Martin
InformationsquelleAutor Martin | 2013-12-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht binden an Methoden. Sie sind mit MVVM also ich würde vorschlagen, Sie zu verwenden, angefügte Eigenschaften in Kombination mit Befehlen. Sie können auch die MouseBinding Klasse: http://msdn.microsoft.com/en-us/library/system.windows.input.mousebinding(v=vs. 110).aspx.
Commandbinding erklärt ganz gut hier: http://www.danharman.net/2011/08/05/binding-wpf-events-to-mvvm-viewmodel-commands/
wenn Sie, wie die Antwort, vote it up!
Leider, in den Befehl, es gibt keinen Weg, um einen Verweis auf die
Button
mehr. Auch, wo sind die Argumente derMouseDown
Ereignis, wie Hinweise darauf, welche Taste gedrückt wurde (ohne auf 3rd-party-Bibliotheken, die man erwähnt in dem verlinkten Artikel)?Sie können die
CommandParameter
Eigenschaft desInvokeCommandAction
.InformationsquelleAutor Florian