| 

.NET C# Java Javascript Exception

3
Hallo,

ich versuche MVVM zu lernen und habe eine kleine VB.net WPF Anwendung geschrieben. Jetzt stehe ich vor dem Problem, dass ich auf Gotfocus bei einer Textbox reagieren will, kann mir jemand weiterhelfen bzw. ein Beispiel nennen.

Vielen Dank
17.09.2014
schnowboard 237 6
3 Antworten
2
Ich habe mich vor längerer mit dem Thema MVVM beschäftigt und bin dabei auf das Framework CINCH gestoßen. Der Author des Frameworks hat eine längere Artikelserie auf Code-Project gepostet, in dem er die Implementierungsdetails seines Frameworks beschreibt. Unter anderem beschreibt er auch, wie Events an ein Viewmodel gebunden werden können. Aus meiner Sicht ist diese Artikelserie eine Fundgrube für jeden, der sich mit dem Thema MVVM auseinander setzen muss.

WPF: If Carlsberg did MVVM Frameworks Part 1 of n
Cinch V2: Version 2 of my Cinch MVVM framework: Part 1 of n
18.09.2014
luedi 2,2k 1 9
Naja, Cinch ist nicht wirklich uptodate.
Die einzigen MVVM Frameworks, die aktuell supportet werden sind MVVM Light von Laurent Bognion und PRISM vom MS P&P Team.
Um unter MVVM auf Events reagieren zu können, muss man sich einzig - wie Andreas schon schreibt - mit Behaviours im Allgemeinen und der EventToCommand Implementierung im Speziellen auseinander setzen.
Schau auch mal hier:
http://codekicker.de/fragen/MVVM-implementiere-Oeffne-Datei-Doppel-Klick
judgy 18.09.2014
Du hast recht, aber ich war damals begeistert davon, wie gut Sascha Barber die Implementierung und vor allem die Probleme, auf die er dabei gestoßen ist, beschreiben hat.

Gerade gestern ist hier ein Artikel zu einem weiteren MVVM-Framework erschienen, welches recht neu und unter aktiver Entwicklung ist:

http://codekicker.de/news/Teil-1-Plattformuebergreifende-App-Entwicklung-MVVMbasics-Framework
luedi 19.09.2014
0
Im MVVM-Light Tookit gibt es ein EventToCommand. Mit dessen Hilfe, kannst du alle Events aus XAML an ein Command im ViewModel binden.
http://msdn.microsoft.com/en-us/magazine/dn237302.aspx

Leider weiß ich nicht aus dem Hut, ob MVVM-Light auch für VisualBasic verfügbar ist.
17.09.2014
Andreas Richter 1,7k 1 2 8
da MVVM-Light eine Library ist, kann man sie natürlich auch in VB-Projekten referenzieren.
luedi 18.09.2014
0
Danke für eure Hilfe!

Ich habe eine Lösung für das Problem:

In der XAML-Datei habe ich einen Trigger eingeführt:
<TextBox ... >
<i:Interaction.Triggers>
<i:EventTrigger EventName="GotFocus">
<i:InvokeCommandAction Command="{Binding cmd_GotFocusTextBox}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>


Im ViewModel setze ich folgenden Code ein:

''' <summary>
''' Variable für das RelayCommand cmd_GotFocusTextBox
''' </summary>
''' <remarks></remarks>
Private _cmd_GotFocusTextBox As RelayCommand

''' <summary>
''' Command für GotFocusTextBox
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public ReadOnly Property cmd_GotFocusTextBox As RelayCommand
Get
If (_cmd_GotFocusTextBox Is Nothing) Then
_cmd_GotFocusTextBox = New RelayCommand(AddressOf TextLeer)
End If
Return _cmd_GotFocusTextBox
End Get
End Property

''' <summary>
''' Funktion die bei cmd_GotFocusTextBox ausgeführt werden soll
''' </summary>
''' <remarks></remarks>
Public Sub TextLeer()

End Sub
17.10.2014
schnowboard 237 6

Stelle deine .net-Frage jetzt!