2011-06-06 16 views
18

Ho un modello di dati per la mia listbox e devo utilizzare le risorse del progetto per tutte le etichette. Se rimuovo il riferimento alla risorsa e digito semplicemente il testo per le etichette non ci sono errori. Se provo a utilizzare le risorse ottengo l'errore sopra riportato.Errore sconosciuto Errore 'chiave non può essere null'

Ecco il modello di dati:

<DataTemplate x:Key="CheckBoxDatePickerItemTemplate"> 
    <Border BorderThickness="1" CornerRadius="3" BorderBrush="{StaticResource GreenBorderBrush}"> 
     <StackPanel Orientation="Horizontal" Background="#208897EB" MinWidth="370"> 
      <CheckBox Focusable="False" IsChecked="{Binding IsChecked}" VerticalAlignment="Top"/> 
      <ContentPresenter Content="{Binding Name, Mode=OneTime}" Margin="2,2" Width="140" VerticalAlignment="Top"/> 
      <StackPanel Orientation="Vertical" Visibility="{Binding DateDataVisible}"> 
       <StackPanel Orientation="Horizontal"> 
        <CheckBox IsChecked="{Binding IncludeNullDates}" VerticalAlignment="Center" Focusable="False"/> 
        <Label Content="{x:Static resx:Resources.Label_IncludeEmptyDates}" Margin="2,2" Width="170" VerticalAlignment="Center"/> 
       </StackPanel> 
       <StackPanel Orientation="Horizontal"> 
        <ContentPresenter Content="{x:Static resx:Resources.Label_From}" Margin="2,0" Width="50" VerticalAlignment="Center"/> 
        <DatePicker SelectedDate="{Binding StartDate}" Margin="2,2" Width="150" /> 
       </StackPanel> 
       <StackPanel Orientation="Horizontal"> 
        <ContentPresenter Content="{x:Static resx:Resources.Label_To}" Margin="2,0" Width="50" VerticalAlignment="Center"/> 
        <DatePicker SelectedDate="{Binding EndDate}" Margin="2,2" Width="150" /> 
       </StackPanel> 
      </StackPanel> 
     </StackPanel> 
    </Border> 
</DataTemplate> 

Una cosa da notare che stiamo usando le risorse in altri file XAML senza problemi. Questo file è tuttavia un dizionario di risorse e viene aggiunto alle risorse app.xaml. Cos'è questo errore?

+1

Solo un'idea casuale, assicurati che tutte le risorse di riferimento siano dichiarate per prime, cioè sopra questo 'DataTemplate' nel tuo dizionario delle risorse. – dain

+2

L'ho capito ... Non ho aggiunto gli xmlns per resx. Spiacenti: s –

risposta

37

Stiamo lavorando a questo progetto in un team e ho appena copiato la riga per l'utilizzo delle risorse ... Ho appena dimenticato di copiare anche l'attributo xmlns. Quello che trovo strano è che l'errore non è realmente descrittivo e non fornisce alcun indizio reale su quale sia il problema.

Morale della trama: se si copiano righe di codice, assicurarsi che vengano copiati anche tutti i riferimenti ai namespace.

+1

Ho ricevuto lo stesso errore a causa di una errata ubicazione della risorsa impostata in Source = {x: Statico l: MainResource.Select}}. Il messaggio di errore è piuttosto fuorviante che indicare dove si trova l'errore: S – Marta

+0

Grazie, questo ha corretto l'errore per me. Questo messaggio di errore è veramente terribile per la situazione considerando che nella sezione risorse ogni elemento ha bisogno di un attributo 'x: Key =" ... "'. –

+0

L'ho avuto perché ho rimosso un riferimento alle impostazioni diagnostiche ma ho comunque utilizzato l'impostazione. – MrFox

Problemi correlati