У меня есть WPF ResourceDictionary со следующим TextBlock:
<TextBlock Visibility="{Binding Converter={StaticResource MyBoolProp ResourceKey=BoolToVis}}">
</TextBlock>
ResourceDictionary включен в App.xaml в MergedDictionaries:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MyResourceDictionary.xaml"/>
В App.xaml я определил конвертер BoolToVis (опять же, под Application.Resources
)
<BooleanToVisibilityConverter x:Key="BoolToVis" />
Когда я запускаю свое приложение - я получаю следующее исключение XamlParseException:
"Укажите значение на
'System.Windows.Markup.StaticResourceHolder'
бросил исключение. "
InnerException:
"Невозможно найти ресурс с именем BoolToVis. Имена ресурсов чувствительны к регистру."
Я могу ссылаться на этот конвертер напрямую с помощью App.xaml (фактически, конкретное объявление XAML идентично) и в других элементах UserControls без проблем.
Этот конкретный фрагмент кода также отлично работал под .NET 4.0 RC (и Beta2). Эта ошибка начиналась только при обновлении до .NET 4.0 RTM.
Я могу обойти это, объявив еще один BooleanToVisibilityConverter
в MyResourceDictionary.xaml и ссылаясь на него примерно так:
<TextBlock Visibility="{Binding Converter={StaticResource MyBoolProp ResourceKey=BoolToVis2}}">
</TextBlock>
Любая причина, почему я должен сделать это?