Ho un WPF ResourceDictionary con il seguente TextBlock:Qual è lo scopo di StaticResource all'interno di WPF ResourceDictionary?
<TextBlock Visibility="{Binding Converter={StaticResource MyBoolProp ResourceKey=BoolToVis}}">
</TextBlock>
Il ResourceDictionary è incluso nel App.xaml sotto MergedDictionaries:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MyResourceDictionary.xaml"/>
All'interno del App.xaml ho definito il convertitore BoolToVis (di nuovo , sotto Application.Resources
)
<BooleanToVisibilityConverter x:Key="BoolToVis" />
quando inizio la mia app up - ricevo il seguente XamlParseExcep zione:
"Fornire valore 'System.Windows.Markup.StaticResourceHolder' ha generato un'eccezione."
L'InnerException è:
"Non riesci a trovare risorsa denominata 'BoolToVis' I nomi delle risorse sono maiuscole e minuscole.".
sono in grado di fare riferimento a questo convertitore direttamente con App.xaml (infatti, il particolare dichiarazione XAML è identico) sia in altre UserControls senza problemi.
Questo particolare bit di codice ha funzionato bene anche con .NET 4.0 RC (e Beta2). Questo errore si è verificato solo quando ho eseguito l'aggiornamento a .NET 4.0 RTM.
sono in grado di lavorare intorno ad esso dichiarando un'altra BooleanToVisibilityConverter
all'interno MyResourceDictionary.xaml e facendo riferimento in questo modo:
<TextBlock Visibility="{Binding Converter={StaticResource MyBoolProp ResourceKey=BoolToVis2}}">
</TextBlock>
Qual è il motivo per cui dovrei bisogno di fare questo?
Prenderemo probabilmente la seconda via. Quello che è così bizzarro è che questo codice ha funzionato bene nella RC, ma non in RTM. Il nostro team di sviluppo è "misto" per quanto riguarda chi ha quale versione. Come early adopter, ho disegnato la cannuccia breve :). Grazie! –