2014-05-23 17 views
5

sto mantenendo un'applicazione legacy WPF, e io sono nuovo a WPF in modo da essere gentile :) Sul tag finestra ho il seguente attributo:"valore non può essere nullo nome del parametro del contenitore." XAML

WindowState="{Binding Source={x:Static gui:GlobalWindowState.Instance}, Path=Maximized, Converter={StaticResource WindowStateConverter}}" 

quando il XAML è aperto sto vedendo l'errore:

"value cannot be null. parameter name container"

il codice compila ed esegue bene, e l'errore mostra solo quando il codice XAML è aperto. Ma vedere quell'errore mi infastidisce davvero.

Google non è stato di grande aiuto. Immagino che la maggior parte della gente lo ignori.

public object Convert(object value, Type targetType, object parameter, CultureInfo culture){ 
+3

Guarda lo Stack Trace. Molto probabilmente l'errore proviene da 'WindowStateConverter'. –

+0

Non c'è traccia di stack. Questo errore viene visualizzato in Visual Studio, ma non interrompe la compilazione. Va via anche quando chiudo il file XAML. Mi infastidisce, ma a parte questo non sembra avere alcun impatto negativo. –

+0

Gli errori sono probabilmente nel tuo 'WindowStateConverter', qualunque cosa sia. Non c'è supporto nel tuo codice per la modalità di progettazione, e quindi sta esplodendo. Pubblica il codice di quel convertitore. –

risposta

2

vorrei suggerire, se si utilizza il MVVM design-pattern e si dispone di un modello vista disponibili a questo codice XAML, per vincolare il proprio WindowState a una proprietà della visualizzazione modello, e scrivere questa proprietà per emettere il valore di cui ha bisogno. Ci sono modi per accertare all'interno della proprietà del modello di vista se è in esecuzione durante la fase di progettazione (ovvero, visualizzata in Visual Studio o Blend) o in runtime. In questo modo puoi facilmente controllare come XAML viene visualizzato sia in fase di runtime che nel tuo designer (Visual Studio). All'interno della vostra proprietà, verificherete esplicitamente i valori nulli per cancellare questo errore. E, è possibile aggiungere dichiarazioni di registrazione per indagare sull'effettiva operazione.

Problemi correlati