Присоединенное свойство WPF работает во время разработки, но выдает исключение при запуске программы - PullRequest
0 голосов
/ 25 января 2019

Я создал вложенное свойство, чтобы установить для содержимого метки ресурс значка.Он работает во время разработки (я вижу значок в конструкторе), но во время выполнения я получаю исключение:

{"Не удалось создать 'DependencyProperty' из текста 'local: AttachedProperties.Icon '. "}

Внутреннее исключение: ссылка на тип не может найти тип с именем' {clr-namespace: MyProgram} AttachedProperties '.

Это мое прикрепленное свойство:

  public class AttachedProperties : DependencyObject
{
    public static readonly DependencyProperty IconProperty = DependencyProperty.RegisterAttached("Icon", typeof(string), typeof(AttachedProperties), new PropertyMetadata(""));

    public static string GetIcon(
        DependencyObject d)
    {
        return (string) d.GetValue(IconProperty);
    }

    public static void SetIcon(DependencyObject d, string value)
    {
        d.SetValue(IconProperty, value);
    }
}

Вот мой ярлык ( Обратите внимание, что этот ярлык находится внутри сетки, которая находится внутри нового шаблона элемента управления стилем кнопок ):

<Label
                        Style="{StaticResource IconLabel}"
                        Content="{TemplateBinding local:AttachedProperties.Icon}"
                        Foreground="White"
                        Background="Transparent"
                        Grid.Column="1"
                        VerticalContentAlignment="Center"
                        HorizontalAlignment="Center" />

Стиль ярлыка:

<Setter
        Property="local:AttachedProperties.Icon"
        Value="{StaticResource FontAwesomeWrench}" />

И здесь я использую стиль кнопок на mainwindow.xaml

   <Button
            Style="{StaticResource MainNavigationMenuButton}"
            local:AttachedProperties.Icon="{StaticResource FontAwesomeHomeIcon}"
            Content="Home"
            ToolTip="{Binding TooltipHome}"
            Command="{Binding }">
        </Button>
        <Button
            Style="{StaticResource MainNavigationMenuButton}"
            local:AttachedProperties.Icon="{StaticResource FontAwesomeToolbox}"
            Content="Toolbox"
            ToolTip="{Binding TooltipToolbox}"
            Command="{Binding }">
        </Button>
        <Button
            Style="{StaticResource MainNavigationMenuButton}"
            local:AttachedProperties.Icon="{StaticResource FontAwesomeRulerCombined}"
            Content="Engineering Suite"
            ToolTip="{Binding TooltipEngineeringsuite}"
            Command="{Binding }">
        </Button>

Как уже говорилось, кнопки выглядят очень хорошо во время разработки.Иконки выглядят так, как задумано.Однако при запуске программы она сразу вылетает.Я попытался изменить синтаксис привязки, но это только отдаляет меня от работы.Я не уверен, что делать.Значки на самом деле являются строками, которые относятся к отображаемым значкам FontAwesome.

Любая помощь будет принята с благодарностью.

...