I tienen una WPF ResourceDictionary con la siguiente TextBlock:¿Cuál es el alcance de StaticResource dentro de un WPF ResourceDictionary?
<TextBlock Visibility="{Binding Converter={StaticResource MyBoolProp ResourceKey=BoolToVis}}">
</TextBlock>
El ResourceDictionary está incluido en App.xaml bajo MergedDictionaries:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MyResourceDictionary.xaml"/>
Dentro del App.xaml he definido el convertidor BoolToVis (de nuevo , bajo Application.Resources
)
<BooleanToVisibilityConverter x:Key="BoolToVis" />
cuando comienzo mi aplicación arriba - me sale el siguiente XamlParseExcep ción:
"proporcionan un valor de 'System.Windows.Markup.StaticResourceHolder' inició una excepción."
El InnerException es:
"No se puede encontrar el recurso llamado 'BoolToVis' nombres de los recursos entre mayúsculas y minúsculas.".
Puedo hacer referencia a este convertidor directamente con App.xaml (de hecho, la declaración XAML particular es idéntica) y dentro de otros UserControls sin problemas.
Este código en particular también funcionó bien bajo .NET 4.0 RC (y Beta2). Este error solo comenzó a suceder cuando actualicé a .NET 4.0 RTM.
soy capaz de trabajar alrededor de ella al declarar otra BooleanToVisibilityConverter
dentro MyResourceDictionary.xaml y refiriéndose a ella como tal:
<TextBlock Visibility="{Binding Converter={StaticResource MyBoolProp ResourceKey=BoolToVis2}}">
</TextBlock>
Cualquier razón para que yo tenga que hacer esto?
Probablemente tomaremos la segunda ruta. Lo que es tan extraño es que este código funcionó bien en el RC, pero no en el RTM. Nuestro equipo de desarrollo está "mezclado" en cuanto a quién tiene qué versión. Como uno de los primeros en adoptar, dibujé la paja corta :). Gracias! –