WPF После использования триггера данных (закрытого) его нельзя изменить - PullRequest
0 голосов
/ 21 ноября 2018

Понятия не имею, что не так и как я должен решить эту ошибку.Как ни странно, триггеры данных работают нормально.

    <Style TargetType="Border">
        <Setter Property="Background" Value="{StaticResource HeaderBackgroundBrush}"/>
        <Style.Triggers>
            <DataTrigger Binding="{Binding State}" Value="{StaticResource ErrorState}">
                <Setter Property="Background" Value="OrangeRed"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding State}" Value="{StaticResource ProductionState}">
                <Setter Property="Background" Value="Green"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>

Состояниями ProductionState и Error являются значения перечисления, на которые ссылается XAML:

    <machineControl:MachineControllerState x:Key="ErrorState">Error</machineControl:MachineControllerState>
    <machineControl:MachineControllerState x:Key="ProductionState">Production</machineControl:MachineControllerState>

Привязка State ссылается на модель представления, которая является "a«обычное» свойство, которое поддерживает IPropertyChanged (из библиотеки mvvm lights)

    public MachineControllerState State
    {
        get => state;
        set { Set(() => State, ref state, value); }
    }

Visual Studio отображает ошибку в списке ошибок:

После того, как триггер данных используется (запечатан),его нельзя изменить

Обновление: чтобы быть понятным, решение компилируется нормально, и во время выполнения все работает, как ожидалось.

1 Ответ

0 голосов
/ 21 ноября 2018

Вы можете ссылаться на свое перечисление прямо из своего кода.Что-то вроде:

{x:Static namespacename:EnumName.EnumValue}

Ссылка: Как использовать типы перечислений в XAML?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...