[WPF] Command.

lunedì 18 giugno 2012 - 00.48
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows 7  |  Windows XP  |  Visual Studio Express  |  Access (.mdb)

Brummell Profilo | Newbie

Ciao a tutti.
Ho una datagrid con datacontext che ha origine da una CollectionViewSource.
Premetto che funziona tutto.
Come da oggetto, stavo provando i command.
Ho dei semplici pulsanti di navigazione, ai quali imposto la disponibilità, mediante il metodo "CanExecute".

Public Class Window1 Dim DataSet As GommistaDataSet Dim CodVelViewSource As New CollectionViewSource Private Sub Window_Loaded(sender As System.Object, _ e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded Dim DataSet = CType(Me.FindResource("GommistaDataSet"), GommistaDataSet) Dim da As GommistaDataSetTableAdapters.CodVelTableAdapter = _ New GommistaDataSetTableAdapters.CodVelTableAdapter() da.Fill(DataSet.CodVel) Me.CodVelViewSource = CType(Me.FindResource("CodVelViewSource"), CollectionViewSource) Me.CodVelViewSource.View.MoveCurrentToFirst() contatore.Text = Me.CodVelViewSource.View.CurrentPosition + 1 End Sub Private Sub Favanti_CanExecute(sender As System.Object, _ e As System.Windows.Input.CanExecuteRoutedEventArgs) Handles Favanti.CanExecute If Me.CodVelViewSource.View.CurrentPosition _ < CType(Me.CodVelViewSource.View, CollectionView).Count - 1 Then e.CanExecute = True Else e.CanExecute = False End If End Sub End Class

Appena lancio il debug, mi restituisce "NullreferenceException non è stata gestita dal codice utente. Riferimento a un oggetto non impostato su un'istanza di oggetto.", evidenziando la CollectionViewSource come causa.
Ho dichiarato il Dataset e la CollectionViewSource a livello di classe, per poterli raggiungere anche al di fuori dell'evento Load.
La valorizzazione della istanza, avviene all'evento Load.
Se la valorizzo *anche* all'interno dell'evento CanExecute, naturalmente funziona, quindi ne deduco che il suddetto evento venga generato prima di quello Load.
Come posso evitare la schifezza di valorizzare la CollectionViewSource, per ogni CanExecute?...
So di essermi perso in un bicchier d'acqua, ma ci sto diventando scemo. Scusate.

Grazie in anticipo.
F.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5