Какова область действия StaticResource в WPF ResourceDictionary?

У меня есть 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:

Msgstr "Предоставить значение для '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>

Любая причина, почему я должен сделать это?

Ответы на вопрос(1)

Ваш ответ на вопрос