У меня есть ресурсы иконок для кнопок, иконки представлены в виде XAML Resource. Мне необходимо связать свойство IconBrush из модели предствления с ключем расширения DynamicResource.
<Button
Grid.Row="2"
Grid.Column="1"
Width="48"
BorderBrush="{x:Null}"
Command="{Binding OpenDialogIcons}"
CommandParameter="{Binding RelativeSource={RelativeSource Mode=Self}}"
Style="{StaticResource BubleButton}">
<Button.Content>
<!-- Данная привязка не работает, как можно решить проблему? -->
<DynamicResource ResourceKey="{Binding IconBrush.ResourceKey, Mode=TwoWay}"/>
</Button.Content>
</Button>
Свойство из модели представления:
public DynamicResourceExtension IconBrush
{
get { return _iconBrush; }
set
{
SetProperty(ref _iconBrush, value, () => IconBrush);
}
}
Инициализация свойство:
IconResources resources = new IconResources();
IconBrush = resources.DrawIcon();
В данном методе получаю управление ресурсами иконок. Этот код тоже несовершенный я ищу решения получше потому что приходится использовать итератор.
public DynamicResourceExtension DrawIcon()
{
ResourceDictionary resource = new ResourceDictionary();
resource.Source = new Uri("../../Resources/Icons.xaml", UriKind.Relative);
DynamicResourceExtension dynamicResource = new DynamicResourceExtension();
foreach (var key in resource.Keys)
{
if ((string) key == "SettingIcon")
dynamicResource.ResourceKey = key;
}
return dynamicResource;
}