131 messaggi dal 12 febbraio 2001
Salve,

sono da qualche giorno passato a VS2010 convertendo i progetti 2008.
Ora mi trovo un errore molto strano in un progetto WPF quando assegno un valore a DataContext in uno UserControl.
In pratica quando provo a riassegnare a DataContext un valore diverso da quello che ha gia mi da questo errore:

ArgumentOutOfRangeException: Index non compreso nell'intervallo. Richiesto valore non negativo e minore della dimensione dell'insieme.
Nome parametro: index

La cosa assurda è che lo stess progetto senza nessuna modifica, eseguito in VS2008 non da alcun errore.

Grazie

Edika
Modificato da edika il 17 settembre 2010 11.30 -
Puoi postare un pò di codice?

Potrebbe anche essere un'eccezione nuova nel framework, che precedentemente non veniva gestita. Hai qualche evento che viene lanciato dopo il databinding?

Davide Guida
Technical Architect @ Razorfish Healthware
http://davideguida.altervista.org
131 messaggi dal 12 febbraio 2001
Ciao

in realta non c'e' molto codice da postare, perche l'operazione che genera l'erroe èsemplicemente l'assegnazione alla proprieta DataContex di un valore diverso da quello precedente.
Lo usercontrol, quando viene istanziato, assegna alla proprieta datacontext un oggetto business di tipo 'Cliente' completamente vuoto istanziato ad esempio con new Cliente("Person Fisica").
Quando l'utente preme un tasto nello usercontrol, viene creato un nuovo oggetto Cliente questa volta con new Cliente("Societa") e riassegnato a DataContext

public partial class NewCliente : UserControl
{
private Cliente cliente=new Cliente("Persona Fisica");

public NewCliente()
{
InitializeComponent();
DataContext=cliente;
}

private void TipoSoggettoChanged(object sender, SelectionChangedEventArgs e)
{
cliente=New Cliente("Societa");
//qui sotto viene generato l'errore in VS2010
DataContext=cliente;
}
}

Stesso progetto aperto con VS2008 viene eseguito tranquillamente senza alcun errore.
Quello che mi chiedo è come è possibile che mantenendo lo stesso framework di destinazione si verifichino questi errori.
Aveveo gia incontrato errori di VS2010 ma relativi alla compilazione di file resx quando i form conetengono imagelist (peraltro non ancora risolta da microsoft), ma questo è un problema che si verifica a runtime.

Grazie

Edika
Modificato da edika il 17 settembre 2010 11.53 -
547 messaggi dal 24 maggio 2002
Contributi
Non conosco il tuo oggetto Cliente ma sei sicuro che
cliente=New Cliente("Societa");

torni un Cliente "buono", se riassegni lo stesso che hai già, cosa succede?

In più, se il codice che hai postato è esattamente quello che usi, come fa a funzionare "New" invece che "new"?

Marco.
131 messaggi dal 12 febbraio 2001
Il codice é solo di esempio in quanto quello reale é molto piu complesso, é solo per far capire dove si verifica l'eccezione e in quale situazione.
Non fare caso a maiuscole o punteggiatura, l'ho scritto direttamente nel forum.

Ciao

Edika

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.