У меня есть 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' бросил исключение".
Внутреннее исключение:
"Невозможно найти ресурс с именем" BoolToVis ". Имена ресурсов чувствительны к регистру."
Я могу ссылаться на этот конвертер непосредственно с App.xaml(фактически, конкретное объявление XAML идентично) и внутри других UserControl без проблем.
Этот бит кода также отлично работает под .NET 4.0 RC (и Beta2). Эта ошибка началась только при обновлении до RTM.NET 4.0.
Я могу обойти это, объявив еще один BooleanToVisibilityConverter
в MyResourceDictionary.xaml и ссылаясь на него следующим образом:
<TextBlock Visibility="{Binding Converter={StaticResource MyBoolProp ResourceKey=BoolToVis2}}">
</TextBlock>
Любая причина, по которой мне нужно будет это делать?