Проблема раздражающего XAML: я определяю DataTemplate в файле словаря ресурсов, который должен получить доступ к конвертеру, определенному как ресурс в App.Resources. Логично, что я должен объединить словарь DataTemplate с помощью словаря App.Resources, и это должно быть так. Но я получаю исключение, говоря, что мой ресурс конвертера не найден. Я что-то упускаю? Ссылка? Порядок определения?XAML DataTemplate не может получить доступ к ресурсу приложения
Update: Вот мои App.Resources
<ResourceDictionary>
<!--Global Resources-->
<BooleanToVisibilityConverter x:Key="BoolToVis"/>
<!--System Resources-->
<sys:Boolean x:Key="True">True</sys:Boolean>
<sys:Boolean x:Key="False">False</sys:Boolean>
<!--Framework Resources-->
<fr:EnumToBoolConverter x:Key="EnumToBool"/>
<fr:EnumAttributeConverter x:Key="EnumToAttr"/>
<fr:FileInfoConverter x:Key="ToFileInfo"/>
<fr:ImageInfoConverter x:Key="ToImageInfo"/>
<fr:UnitConverter x:Key="ToUnit"/>
<fr:CommandParameterConverter x:Key="ToCmdParam"/>
<!--Style Resources-->
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/FrameworkUI;component/Styles/Dark3DStyles.xaml"/>
<ResourceDictionary Source="/Resources/DataTemplates.xaml/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
... и вот это DataTemplate определен в словаре ресурсов файл
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<DataTemplate x:Key="NoteEnumTemplate">
<Grid Height="22">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="22"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Stretch="None"
Source="{Binding Converter={StaticResource EnumToAttr},
ConverterParameter=ICON}">
<Image.Effect>
<DropShadowEffect ShadowDepth="0"/>
</Image.Effect>
</Image>
<Label Grid.Column="1"
Content="{Binding Converter={StaticResource EnumToAttr},
ConverterParameter=DESCR}"/>
</Grid>
</DataTemplate>
конвертер, который может» t находится EnumToAttr
No. Путь =. не принимается. Клеменс, что ты говоришь, всегда работал на меня, поэтому я нахожу это странным. –
Kylo Ren, сначала определяется конвертер, а затем словари объединяются. –
@GeysserSdz Извините, я не видел этого в быстрый взгляд. Я сделал быстрый пример, чтобы быть уверенным. вы должны определить конвертер, прежде чем использовать его в словаре. прежде чем я не имел в виду, где вы написали синтаксис Merge Dictionary. Я имею в виду файл в случае слияния словаря. вызвать код слова слияния будет сначала перед любым другим кодом в разделе ресурсов. –