Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
2 verfasser
Seite 1 von 2
Seite 1 von 2 • 1, 2
Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
hey hey, ich bin gerade am recherschieren für shortcuts, könnt ihr mir sagen wie ich den oben genannten Verweis richtig schreibe?
folgender code bisher:
private void menu_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.LeftCtrl) isCtrlKeyPressed = true;
else if (isCtrlKeyPressed)
{
switch (e.Key)
{
case Key.S: Toolsmith.ViewModel.MainVM.
}
}
}
folgender code bisher:
private void menu_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.LeftCtrl) isCtrlKeyPressed = true;
else if (isCtrlKeyPressed)
{
switch (e.Key)
{
case Key.S: Toolsmith.ViewModel.MainVM.
}
}
}
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
uhhhhhhh biste sicher dass es nich ne bessere Methode gibt für shortcuts?
http://stackoverflow.com/questions/1361350/keyboard-shortcuts-in-wpf
hier steht was davon dass man den Commands direkt shortcuts zuweisen kann...
Edit: Bin mir nich sicher aber das was du da machst sieht so aus als würde es direkt am Keydown event vom Menü liegen, und ich bin nich sicher, ob die shortcuts dann von überall her funktionieren (sowas wie ctrl+s zB)
Edit2:
http://www.informit.com/articles/article.aspx?p=688529&seqNum=4
etwa auf halbem weg runter steht da sowas wie
Sieht also so aus als könnte man auch Tastencombos Elementweise direkt an Commands binden (das wäre ja genau was wir bräuchten, um ZB shortcuts an die textlines zu binden, bzw deren Textfeld oder so, ohne dass wir die global auswerten)
(Vorteil an allen aufgeführten methoden hier: Du brauchst nich auf die Methode binden, sondern kannst direkt aus dem Fenster über den Datacontext an die commands binden, die ja schon existieren)
http://stackoverflow.com/questions/1361350/keyboard-shortcuts-in-wpf
hier steht was davon dass man den Commands direkt shortcuts zuweisen kann...
Edit: Bin mir nich sicher aber das was du da machst sieht so aus als würde es direkt am Keydown event vom Menü liegen, und ich bin nich sicher, ob die shortcuts dann von überall her funktionieren (sowas wie ctrl+s zB)
Edit2:
http://www.informit.com/articles/article.aspx?p=688529&seqNum=4
etwa auf halbem weg runter steht da sowas wie
- Code:
<Window.InputBindings>
<KeyBinding Command="Help" Key="F2"/>
<KeyBinding Command="NotACommand" Key="F1"/>
</Window.InputBindings>
Sieht also so aus als könnte man auch Tastencombos Elementweise direkt an Commands binden (das wäre ja genau was wir bräuchten, um ZB shortcuts an die textlines zu binden, bzw deren Textfeld oder so, ohne dass wir die global auswerten)
(Vorteil an allen aufgeführten methoden hier: Du brauchst nich auf die Methode binden, sondern kannst direkt aus dem Fenster über den Datacontext an die commands binden, die ja schon existieren)
Zuletzt von ahertel am Do Feb 14, 2013 3:47 am bearbeitet; insgesamt 1-mal bearbeitet
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
danke, dann werd ich mich da mal durchwurschteln, wie findest du das so schnell ich suche seit über ner stunde nach hilfreichen posts argh
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
So ich habe jetzt zumindest die Funktionaliät für Save-Shortcuts drin, das ginge dann genauso für open.
Wie genau soll der sich verhalten bei save? das standard-Save-Fenster öffnen? oder soll ich irgendwas anderes in der methode aufrufen?
Wie genau soll der sich verhalten bei save? das standard-Save-Fenster öffnen? oder soll ich irgendwas anderes in der methode aufrufen?
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
wie genau haste denn das jetz gelöst? an den command gebunden oder selber code-behind gemacht?
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
Xaml: (im äußersten grid)
<Grid.CommandBindings>
<CommandBinding Command="Save"
CanExecute="SaveCanExecute"
Executed="SaveExecuted" />
</Grid.CommandBindings>
<Grid.InputBindings>
<KeyBinding Command="Save" Key="S" Modifiers="Ctrl"/>
</Grid.InputBindings>
In MainWindowxaml.cs:
private bool _SaveCanExecute = true;
private void SaveCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = _SaveCanExecute;
e.Handled = true;
}
private void SaveExecuted(object sender, ExecutedRoutedEventArgs e)
{
MessageBox.Show("Hey, I'm some Save.");
}
<Grid.CommandBindings>
<CommandBinding Command="Save"
CanExecute="SaveCanExecute"
Executed="SaveExecuted" />
</Grid.CommandBindings>
<Grid.InputBindings>
<KeyBinding Command="Save" Key="S" Modifiers="Ctrl"/>
</Grid.InputBindings>
In MainWindowxaml.cs:
private bool _SaveCanExecute = true;
private void SaveCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = _SaveCanExecute;
e.Handled = true;
}
private void SaveExecuted(object sender, ExecutedRoutedEventArgs e)
{
MessageBox.Show("Hey, I'm some Save.");
}
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
ok also codebehind... kannst du versuchen das Keybinding im xaml statt auf "Save" auf "{Binding cmdSave}" zu setzen, ob das funktioniert? wenn das klappt sollte der dann nich dein manuell erstelltes CommandBinding nutzen, sondern den relaycommand ausm datacontext (damit mainVM)... das sollte dann dafür sorgen dass der reguläre savecommand ausgeführt wird, der ja dann genauso reagiert wie der savebutton und das save menü...
(ich hoffe cmdSave war der Richtige name..)
Edit: ich hatte mal irgendwo gelesen dass das ab .Net 4.0 funktionieren soll, bin grad nich sicher welche .net version wir benutzen...
(ich hoffe cmdSave war der Richtige name..)
Edit: ich hatte mal irgendwo gelesen dass das ab .Net 4.0 funktionieren soll, bin grad nich sicher welche .net version wir benutzen...
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
omg bin ich erleichtert. Wenn das nich funktioniert hätte, wär das gemein geworden, dann hätten wir gucken müssen dass wir vom MainWindow Codebehind funktionen aus der MainVM aufrufen können... egal dann klappt das so
Das Gute: Die meisten shortcuts die wir brauchen sind bereits in menüform vorhanden (öffnen, neu etc)
-> Die lassen sich dann genauso leicht an shortcuts binden weils bereits commands dazu gibt.
Was den rest angeht müssen wir mal gucken wies am besten hinhaut, wenn wir dann vor den expliziten Problemen stehen
Das Gute: Die meisten shortcuts die wir brauchen sind bereits in menüform vorhanden (öffnen, neu etc)
-> Die lassen sich dann genauso leicht an shortcuts binden weils bereits commands dazu gibt.
Was den rest angeht müssen wir mal gucken wies am besten hinhaut, wenn wir dann vor den expliziten Problemen stehen
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
Also New und Open und Save sind drin, welche soll ich noch machen/versuchen?
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
hmmm vllt ein kleines experiment...
mach ma ein keybinding innerhalb des texteditorbereichs, innerhalb des datatemplates für die listboxitems (also unsere textlines)...
mach das mal Strg+Enter (oder so), und guck mal ob du das ann cmdAddAnswer gebunden kriegst (wie immer nur geraten wie der genaue name ist)...
würde mich interessieren ob das funktioniert, dass das dann ne tastenkombo ist, die nur dann funktioniert wenn man sich im fokus des listboxitems befindet... wäre ultracool
mach ma ein keybinding innerhalb des texteditorbereichs, innerhalb des datatemplates für die listboxitems (also unsere textlines)...
mach das mal Strg+Enter (oder so), und guck mal ob du das ann cmdAddAnswer gebunden kriegst (wie immer nur geraten wie der genaue name ist)...
würde mich interessieren ob das funktioniert, dass das dann ne tastenkombo ist, die nur dann funktioniert wenn man sich im fokus des listboxitems befindet... wäre ultracool
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
Und es ist ULTRACOOL läuft perfekt, einfacher gehts nicht
nur dass der cursor auch wechselt und son fein kram muss man dann mal schauen ich mach dann mla die restlichen shortcuts und dann kann das mit evaluiert werden
ach nochwas, wie genau implementier ich das in die datei im svn--- habe da ich am binding nie beteiligt war, noch nie an der datei gearbeitet... was beachten, wie vorgehen, was committen was nicht
nur dass der cursor auch wechselt und son fein kram muss man dann mal schauen ich mach dann mla die restlichen shortcuts und dann kann das mit evaluiert werden
ach nochwas, wie genau implementier ich das in die datei im svn--- habe da ich am binding nie beteiligt war, noch nie an der datei gearbeitet... was beachten, wie vorgehen, was committen was nicht
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
du weißt ja sehr genau was du getan hast... reduzier es auf das wesentlichste (in deinem fall würd ich den unnötigen codebehind aus der MainWindow.xaml.cs rauslöschen)...
Dann einmal kurz antesten ob auch alles noch funktioniert (nur ma kurz drübersehn das gröbste)
anschließend einfach nur den ganzen Toolsmith Implementation/Toolsmith/ Ordner commiten (wenn das global zählt, werden die obj und bin ordner von svn ignoriert, also keine gefahr dabei)...
Während du committest sollte er dir die Geänderten Dateien zeigen die er dann uploaden will, das sollten bei dir dann ja nur die MainWindow.xaml und MainWindow.xaml.cs sein (wobei ich glaube die .cs datei könnteste auch reverten, da ja das gesamte shortcut zeugs nur in der xaml drin steckt)...
kommentar zum commit hinzufügen damit man später weiß was gemacht wurde und einfach commiten
edit:
das mit dem cursor wechseln is in der Tat noch so ne sache... es gibt wohl fürs codebehind ne funktion "Focus()" die man auf den meisten UI Elementen ausführen kann, aber da wir im Codebehind ja innerhalb der VMs niemals auf die View elemente zugreifen, könnte das schwer werden. Ich hoffe dass es bei den triggern neben den üblichen "settern" evtl auch noch ne möglichkeit gibt das anzuwenden. Dann können wir im IsSelected trigger der listboxitems einfach die fokusmethode aufrufen für das textfeld, und damit .... *plötzliche erleuchtung* wäre der keyboardfokus automatisch im neuen textfeld und dieses gesamte andere problem mit der fokusverschiebung wäre gelöst.... :O
Edit2:
http://stackoverflow.com/questions/6737843/how-to-set-focus-to-textbox-using-mvvm
das könnte funzen.... einfach beim isselected trigger damit den fokus auf das textfeld setzen.... dann wäre beim auswählen einer Zeile immer automatisch das textfeld ausgewählt....
Dann einmal kurz antesten ob auch alles noch funktioniert (nur ma kurz drübersehn das gröbste)
anschließend einfach nur den ganzen Toolsmith Implementation/Toolsmith/ Ordner commiten (wenn das global zählt, werden die obj und bin ordner von svn ignoriert, also keine gefahr dabei)...
Während du committest sollte er dir die Geänderten Dateien zeigen die er dann uploaden will, das sollten bei dir dann ja nur die MainWindow.xaml und MainWindow.xaml.cs sein (wobei ich glaube die .cs datei könnteste auch reverten, da ja das gesamte shortcut zeugs nur in der xaml drin steckt)...
kommentar zum commit hinzufügen damit man später weiß was gemacht wurde und einfach commiten
edit:
das mit dem cursor wechseln is in der Tat noch so ne sache... es gibt wohl fürs codebehind ne funktion "Focus()" die man auf den meisten UI Elementen ausführen kann, aber da wir im Codebehind ja innerhalb der VMs niemals auf die View elemente zugreifen, könnte das schwer werden. Ich hoffe dass es bei den triggern neben den üblichen "settern" evtl auch noch ne möglichkeit gibt das anzuwenden. Dann können wir im IsSelected trigger der listboxitems einfach die fokusmethode aufrufen für das textfeld, und damit .... *plötzliche erleuchtung* wäre der keyboardfokus automatisch im neuen textfeld und dieses gesamte andere problem mit der fokusverschiebung wäre gelöst.... :O
Edit2:
http://stackoverflow.com/questions/6737843/how-to-set-focus-to-textbox-using-mvvm
das könnte funzen.... einfach beim isselected trigger damit den fokus auf das textfeld setzen.... dann wäre beim auswählen einer Zeile immer automatisch das textfeld ausgewählt....
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
hast nix eingecheckt? schade hatte mich schon drauf gefreut das zu testen
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
geduldie dich bis morgen etwas anderes hatte vorrang
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
So kurzes Problem..... Die Shortcuts für neuen Char und neuen Dia bekomme ich so auf Anhieb nicht hin. Da die ja überall ausgeführt werden sollen, müssen die in der xaml im äußersten grid sein.... das ist aber nichts ans jeweilie viemodelgebunden, sondern natürlich nur an MainViewModel... außerdem haben die Commands den selben Namen cmdNew...
wie am besten vorgehen?
edit: das mit dem isselected trigger musste mir nochma erklären, hab die bindings da nicht gemacht und konnte deiner argumentation nicht folgen.... würde das gerne implementieren
wie am besten vorgehen?
edit: das mit dem isselected trigger musste mir nochma erklären, hab die bindings da nicht gemacht und konnte deiner argumentation nicht folgen.... würde das gerne implementieren
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
Shortcuts:
Du kannst die ruhig im Mainwindow definieren, binden musst du dann über den jeweiligen namen des subelements.
Char und Dia erstellen passiert ja normalerweise in der CharacterListVM/ DialogueListVM. die haben ja jeweils cmdNew.
In der MainVM heißen die beiden subelemente characterList, bzw dialogueList...
das heißt mit
{Binding characterList.cmdNew} sollteste da weiterkommen...
mit dem Trigger schau ich grad selber nochma was ich da gefunden hatte, meld mich dafür dann gleich nochmal
Du kannst die ruhig im Mainwindow definieren, binden musst du dann über den jeweiligen namen des subelements.
Char und Dia erstellen passiert ja normalerweise in der CharacterListVM/ DialogueListVM. die haben ja jeweils cmdNew.
In der MainVM heißen die beiden subelemente characterList, bzw dialogueList...
das heißt mit
{Binding characterList.cmdNew} sollteste da weiterkommen...
mit dem Trigger schau ich grad selber nochma was ich da gefunden hatte, meld mich dafür dann gleich nochmal
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
danke, ich denke das mit den shortcuts bekomm ich dann auch hin
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
Ok Thema Trigger (ich fasse nochmal zusammen)
Wir wollten ja, dass wenn man die Textzeile wechselt (sprich wenn sie selected wird), das Fokussierte Element die Textzeile wird. (zumindest für den anfang vonner logik her macht das sinn)
Wir wissen, wann ein Element selektiert wird, dafür haben wir ja im Datatemplate nen Trigger. Bisher blendet dieser trigger nur das "grid_buttons" aus, wenn IsSelected False ist.
Bauen wir nen zweiten Trigger ein, der getriggert wird, wenn IsSelected True ist, und seine Auswirkung ist
(Aus dem Beispiel auf http://stackoverflow.com/questions/6737843/how-to-set-focus-to-textbox-using-mvvm)
dann Sollte das so sein, dass wenn das lbi ausgewählt wird, der fokus automatisch auf dem in value gebundenen Element liegt.
Ich habs grad kurz ausprobiert und nich ans laufen gebracht, allerdings steig ich auch durch das grid nich so 100% durch... kann sein, dass ihr einfach mal jedem Grid einen eindeutigen Namen geben müsst, damit mann dann mit außengrid.innengrid.innengrid2.textfeld das textfeld genau referenzieren kann... ich versuch da nochma rumzuforschen aber so in etwa müsste es eigentlich gehen.
Wir wollten ja, dass wenn man die Textzeile wechselt (sprich wenn sie selected wird), das Fokussierte Element die Textzeile wird. (zumindest für den anfang vonner logik her macht das sinn)
Wir wissen, wann ein Element selektiert wird, dafür haben wir ja im Datatemplate nen Trigger. Bisher blendet dieser trigger nur das "grid_buttons" aus, wenn IsSelected False ist.
Bauen wir nen zweiten Trigger ein, der getriggert wird, wenn IsSelected True ist, und seine Auswirkung ist
- Code:
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=PropertySearch}"/>
(Aus dem Beispiel auf http://stackoverflow.com/questions/6737843/how-to-set-focus-to-textbox-using-mvvm)
dann Sollte das so sein, dass wenn das lbi ausgewählt wird, der fokus automatisch auf dem in value gebundenen Element liegt.
Ich habs grad kurz ausprobiert und nich ans laufen gebracht, allerdings steig ich auch durch das grid nich so 100% durch... kann sein, dass ihr einfach mal jedem Grid einen eindeutigen Namen geben müsst, damit mann dann mit außengrid.innengrid.innengrid2.textfeld das textfeld genau referenzieren kann... ich versuch da nochma rumzuforschen aber so in etwa müsste es eigentlich gehen.
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
ja die ordentliche namensgebung ist in auftrag gegeben.
nur noch mal so gerade ein gedanke: sollte nicht das zuerst selektierte objekt der Char-DropDown sein? zumindest wenn answer geklickt wurde, bei option isses dann die textzeile
nur noch mal so gerade ein gedanke: sollte nicht das zuerst selektierte objekt der Char-DropDown sein? zumindest wenn answer geklickt wurde, bei option isses dann die textzeile
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
sollen wir nicht erstmal versuchen etwas einfaches und eindeutiges zu selektieren? komplexere abfolgen wie "Wenn das, dann das selektiert" können wir später immernoch machen.
Ich persönlich finde eigentlich die Textzeile den einfachsten Einstieg dafür. Wenn wir noch shortcuts einbauen können, um zB durch die charaktere zu switchen, brauchen wir meiner Meinung nach auch keinen fokus auf der combobox.
Außerdem reden wir ja nicht nur von "Answer" udn "Option" sondern auch davon, wenn du einfach so eine textzeile auswählst, die bereits existiert, und da find ich das Textfeld am sinnvollsten.
ich bin erstmal zufrieden, wenn wir es von der view aus hinkriegen den fokus zu steuern, bei mir scheitert es nämlich auch im mini-programm-experiment bisher...
Ich persönlich finde eigentlich die Textzeile den einfachsten Einstieg dafür. Wenn wir noch shortcuts einbauen können, um zB durch die charaktere zu switchen, brauchen wir meiner Meinung nach auch keinen fokus auf der combobox.
Außerdem reden wir ja nicht nur von "Answer" udn "Option" sondern auch davon, wenn du einfach so eine textzeile auswählst, die bereits existiert, und da find ich das Textfeld am sinnvollsten.
ich bin erstmal zufrieden, wenn wir es von der view aus hinkriegen den fokus zu steuern, bei mir scheitert es nämlich auch im mini-programm-experiment bisher...
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
okay ich habs glaub ich einigermaßen.
Wenn wir nen zweiten trigger einbauen, der IsSelected auf True prüft (analog zu dem der die buttons ausblendet)
und darin den folgenden Setter definieren:
Dann gewinnt die Textbox immer den Fokus wenn man ein Element auswählt.
Leider ist dabei das Problem aufgetreten, dass jetzt bei Add Answer nicht mehr das neue Element automatisch selektiert wird (ich vermute, das is ne wechselwirkung mit den style triggern, die ja "IsSelected" setzen, wenn der keyboardfokus darin is. Dadurch dass wir den keyboardfokus ändern, wird damit isselected doch nur wieder auf dasselbe element gesetzt. Ich denk nochmal ne runde drüber nach, vielleicht können wir der TextlineVM ne bool property geben "ShouldBeSelected" oder so, die ausdrückt, dass das ding den fokus kriegen sollte...
jedenfalls wissen wir jetz wie wir den fokus auf ein element setzen. das is schonmal was gutes.
Wenn wir nen zweiten trigger einbauen, der IsSelected auf True prüft (analog zu dem der die buttons ausblendet)
und darin den folgenden Setter definieren:
- Code:
<Setter TargetName="txtbox" Property="FocusManager.FocusedElement" Value="{Binding RelativeSource={RelativeSource Mode=Self}}"/>
Dann gewinnt die Textbox immer den Fokus wenn man ein Element auswählt.
Leider ist dabei das Problem aufgetreten, dass jetzt bei Add Answer nicht mehr das neue Element automatisch selektiert wird (ich vermute, das is ne wechselwirkung mit den style triggern, die ja "IsSelected" setzen, wenn der keyboardfokus darin is. Dadurch dass wir den keyboardfokus ändern, wird damit isselected doch nur wieder auf dasselbe element gesetzt. Ich denk nochmal ne runde drüber nach, vielleicht können wir der TextlineVM ne bool property geben "ShouldBeSelected" oder so, die ausdrückt, dass das ding den fokus kriegen sollte...
jedenfalls wissen wir jetz wie wir den fokus auf ein element setzen. das is schonmal was gutes.
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
Ergänzung zu eben gesagtem...
Der Grund warum wir die Keyboardfokustrigger brauchten war ja, dass wir den fokus auf ein element legen wollten, wenn man zB direkt in dessen Textfeld oder ein anderes nicht-textblock element klickt...
Kleines gedankenspiel:
Wenn wir dafür sorgen, dass die Elemente in nichtselektierten textzeilen nicht fokussierbar sind
Anschließend setzen wir im IsSelected True trigger
---------Einschub:
Ich hab gerade die TextEditorVM neu hochgeladen. Änderung: ich setze beim AddAnswer und AddOption das Selected manuell, das wäre damit schonmal erledigt....
---------------------------------------
also fokussierbar aus - fokussierbar an. sollte hinhauen.
Alternative wäre, die Elemente durch nicht-interaktive alternativen auszutauschen (war glaub ich irgendwann auch mal angedacht).
Bsp Combobox:
Wir haben ne Combobox UND einen Textblock, die beide auf den selben string gebunden sind.
Textzeile selektiert: combobox sichtbar, textblock unsichtbar
Textzeile nicht selektiert: combobox unsichtbar, textblock sichtbar
Das is nich zwingend nötig, wäre nur eine layout finesse (falls gewünscht), um nichtselektierte textzeilen optisch auch so darzustellen (wo keine combobox ist, erwarte ich nicht dass ich es sofort nutzen kann)....
Lasst die ganzen gedanken mal ein bisschen wirken und sagt mir was ihr davon haltet...
Der Grund warum wir die Keyboardfokustrigger brauchten war ja, dass wir den fokus auf ein element legen wollten, wenn man zB direkt in dessen Textfeld oder ein anderes nicht-textblock element klickt...
Kleines gedankenspiel:
Wenn wir dafür sorgen, dass die Elemente in nichtselektierten textzeilen nicht fokussierbar sind
- Code:
<Setter TargetName="txtbox" Property="Focusable" Value="False"/>
Anschließend setzen wir im IsSelected True trigger
- Code:
<Setter TargetName="txtbox" Property="Focusable" Value="True"/>
---------Einschub:
Ich hab gerade die TextEditorVM neu hochgeladen. Änderung: ich setze beim AddAnswer und AddOption das Selected manuell, das wäre damit schonmal erledigt....
---------------------------------------
also fokussierbar aus - fokussierbar an. sollte hinhauen.
Alternative wäre, die Elemente durch nicht-interaktive alternativen auszutauschen (war glaub ich irgendwann auch mal angedacht).
Bsp Combobox:
Wir haben ne Combobox UND einen Textblock, die beide auf den selben string gebunden sind.
Textzeile selektiert: combobox sichtbar, textblock unsichtbar
Textzeile nicht selektiert: combobox unsichtbar, textblock sichtbar
Das is nich zwingend nötig, wäre nur eine layout finesse (falls gewünscht), um nichtselektierte textzeilen optisch auch so darzustellen (wo keine combobox ist, erwarte ich nicht dass ich es sofort nutzen kann)....
Lasst die ganzen gedanken mal ein bisschen wirken und sagt mir was ihr davon haltet...
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
PS:
Shortcuts sind awesome!
aber ein problemchen gibts
Bsp:
1. starte programm
2. schließe den einen offenen dialog
3. Strg+N
-> nichts passiert
4. klicke in die leere charakterliste
5. strg+N
-> funktioniert
-> Aber obwohl der dialog geöffnet wird (tab erscheint), ist nichts zu sehen bis man auf den tab klickt...
ich bin leider etwas überfragt was dafür der grund sein könnte, es scheint so als läge der fokus nach dem schließen des letzten dialogs irgendwo, wo die shortcuts nicht funktionieren, keine ahnung warum oder wo... und u.U. liegt dieses etwas dann im vordergrund vor dem tabcontrol??? wenn jemand ne idee hat immer raus damit.
Shortcuts sind awesome!
aber ein problemchen gibts
Bsp:
1. starte programm
2. schließe den einen offenen dialog
3. Strg+N
-> nichts passiert
4. klicke in die leere charakterliste
5. strg+N
-> funktioniert
-> Aber obwohl der dialog geöffnet wird (tab erscheint), ist nichts zu sehen bis man auf den tab klickt...
ich bin leider etwas überfragt was dafür der grund sein könnte, es scheint so als läge der fokus nach dem schließen des letzten dialogs irgendwo, wo die shortcuts nicht funktionieren, keine ahnung warum oder wo... und u.U. liegt dieses etwas dann im vordergrund vor dem tabcontrol??? wenn jemand ne idee hat immer raus damit.
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Verweis aus MainWindow.xaml.cs auf MainVM.cs _savemethode
wer hat nen vorschlag für nen schönen shortcut um nen neuen char zu erstellen strg+c is nich da schon coy damit gentzt wird und wir daher in der textbox beim sialogschreiben keine neuen chars erstellen können
Seite 1 von 2 • 1, 2
Seite 1 von 2
Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten