Newsgroup: it.comp.lang.visual-basic
Titolo: [WPF] CommandBinding.

Ciao a tutti.
All'interno del "CanExecute" del mio CommandBinding, ho questo codice:
 
        If MagazzinoViewSource.View.IsCurrentAfterLast Then
            e.CanExecute = False
        End If
 
Al caricamento della window, il debug mi restituisce "NullReferenceException non è stata gestita dal codice utente".
Immagino che la view non sia ancora riempita. Come posso risolvere?
Grazie.

Ciao Fabrizio Alessandri,

If MagazzinoViewSource.View Is Nothing Then
  e.CanExecute = False
Else If MagazzinoViewSource.View.IsCurrentAfterLast Then
  e.CanExecute = False
End If
 
.m
 
-- 
blog @ //
milestone.topics.it
 
 
 

Grazie Mauro!
 
F.


Stando studiando altro a suo tempo e non provai.
Mi dà lo stesso errore citato sopra, aggiungendo "Riferimento a un oggetto non impostato su un'istanza di oggetto."
"MagazzinoViewSource" è una CollectionViewSource, opportunamente posizionata pubblicamente nella window, proprio per renderla accessibile a prescindere dall'evento Loaded.
 
    Dim MagazzinoViewSource As System.Windows.Data.CollectionViewSource
    Dim GommistaDataSet As Gommista.GommistaDataSet
    Dim GommistaDataSetMagazzinoTableAdapter As Gommista.GommistaDataSetTableAdapters.MagazzinoTableAdapter

 
 
E l'istanziamento dell'oggetto di tipo MagazzinoViewSource dov'è? Senza
quello MagazzinoViewSource è Nothing e facendo riferimento alle sue
proprietà ti va in eccezione (es: accedere alla proprietà View)
 

 proprietï¿œ ti va in eccezione (es: accedere alla proprietï¿œ View)
 
Oh povero me come son ridotto...
Grazie Loganino e scusa la svista.

 KeyDown? Grazie.
 
usa una attached property e "mappa" l'evento KeyDown sul tuo ICommand.



La cosa curiosa è che questo post lo avevo cancellato, incapponendomi nel voler trovare la soluzione da solo. Tutt'ora io non lo vedo (il post). Boh.
Grazie infinite Mauro, provvedo a studiarmelo :)
 
P.S.
stanotte ho finito il "Totem"!
Avevo abbandonato il WPF, rendendomi conto che con il mio approssimativo retaggio, non andavo da nessuna parte. Troppe lacune e ho ricominciato (o cominciato) da capo.
Salvo imprevisti da oggi parto con WPF (ora mi diverto!), quindi attenzione Mauro (e tutti i guru di WPF), fra poco avrai/ete un temibilissimo concorrente :-D :-P

Ciao Fabrizio Alessandri,

:-D
 
-- 
blog @ //
milestone.topics.it
 
 
 

Il giorno mercoledì 20 giugno 2012 14:55:30 UTC+2, Mauro Servienti [ MVP ] ha scritto:

Mi è riuscito subito!..... :'(
 
 
<Button KeyDown="KeyIndietro" Command="BrowseBack" Width="Auto" Grid.Column="1" ToolTip="Indietro">&lt;</Button>
 
    Private Sub KeyIndietro(sender As System.Object, e As System.Windows.Input.KeyEventArgs) 
        If e.Key = Key.PageUp Then
            Me.CodVelViewSource.View.MoveCurrentToPrevious()
            CodVelDataGrid.ScrollIntoView(Me.CodVelViewSource.View.CurrentItem)
        End If
        contatore.Text = Me.CodVelViewSource.View.CurrentPosition + 1
    End Sub
 
Funzionerebbe, ma l'evento KeyDown viene intercettato dall'ICommand solo se (ovviamente) ha il fuoco. Ho interpretato male il tuo suggerimento? Come potrei ovviare?
Grazie.

 potrei ovviare?
 
noi, ho sbagliato io il suggerimento perchï¿œ non avevo capito cosa 
volevi fare.
Prova a vedere se gli "input bindings" sui command risolvono il 
problema.


 problema.
Grazie Mauro ;-)
 
F.
 


    <Window.CommandBindings>
        <CommandBinding x:Name="Avanti" Command="BrowseForward"  />
        <CommandBinding x:Name="Indietro" Command="BrowseBack"  />
        <CommandBinding x:Name="Fine" Command="GoToPage"  />
        <CommandBinding x:Name="Inizio" Command="FirstPage"  />
    </Window.CommandBindings>
     <Window.InputBindings>
        <KeyBinding Key="PageUp" Command="BrowseBack" />
        <KeyBinding Key="PageDown" Command="BrowseForward" />
    </Window.InputBindings>
 
Prezioso suggerimento :-)
 
Non ho ancora avuto modo di approfondire, ma vorrei chiederti una cosa. Attribuisco i comandi disponibili per i CommandBinding, come nell'es. sopra "GoToPage", "BrowseBack", etc. Ad essi associo poi la personalizzazione del comando.
1) A cosa servono i comandi predefiniti se cmq vanno personalizzati? Sono solo dei nomi fittizi? 
2) non posso definirli "FabrizioStudiaWPF", etc ?
 
Grazie ancora.

 2) non posso definirli "FabrizioStudiaWPF", etc ?
 
Si certo.


 Si certo.
Piccolo indizio da studiare?! :-)

Ciao Fabrizio,
 
You wrote on 26/06/2012 :

costruirsi i propri command è abbastanza facile, e ci puoi fare cose 
turche:
 
http://radical.codeplex.com/SourceControl/changeset/view/79481#1476103
 
http://milestone.topics.it/search?q=DelegateCommand
 



Grazie!