У меня есть WPF ResourceDictionary со следующим TextBlock:Какова область применения StaticResource в WPF ResourceDictionary?
<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" />
Когда я начинаю мое приложение вверх - я получаю следующее XamlParseExcep Тион:
"Обеспечить значение на 'System.Windows.Markup.StaticResourceHolder' бросил исключение."
InnerException является:
"Не удается найти ресурс с именем 'BoolToVis' Имена ресурсов чувствительны к регистру.."
Я могу обратиться к этому конвертеру непосредственно с App.xaml (фактически, конкретное объявление XAML идентично) и в пределах других UserControls без проблем.
Этот конкретный бит также отлично работал под .NET 4.0 RC (и Beta2). Эта ошибка началась только при обновлении до RTM .NET 4.0.
Я могу работать вокруг него, объявив другой BooleanToVisibilityConverter
в MyResourceDictionary.xaml и обращаясь к ней, как так:
<TextBlock Visibility="{Binding Converter={StaticResource MyBoolProp ResourceKey=BoolToVis2}}">
</TextBlock>
какой-либо причине, почему я должен нужно сделать это?
Мы, вероятно, займем второй маршрут. Что такое bizzare, так это то, что этот код отлично работает в RC, но не RTM. Наша команда разработчиков «смешанна» в отношении того, кто имеет какую версию. Будучи ранним усыновителем, я нарисовал короткую соломинку :). Спасибо! –