Я пытаюсь условно форматировать текстовый блок в зависимости от свойства Text, но я не могу заставить его работать:Условный стиль на основе свойства TextBlock.Text?
<Style x:Key="StatusEnumTextStyle" TargetType="TextBlock" >
<Style.Triggers>
<DataTrigger Binding="{Binding Text}" Value="InProgress">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
<TextBlock Text="InProgress" Style="{StaticResource StatusEnumTextStyle}"/>
Но я получаю ошибку связывания:
System.Windows.Data Error: 40 : BindingExpression path error: 'Text' property not found on 'object' ''NotifierViewModel' (HashCode=43600526)'. BindingExpression:Path=Text; DataItem='VM' (HashCode=43600526); target element is 'TextBlock' (Name=''); target property is 'NoTarget' (type 'Object')
Ну я вижу что триггер пытается получить String.Text, но как я могу использовать свойство TextBlock для моего триггера?
Фон: В принципе, я хочу условный стиль, основанный на Enum, называемый «StatusEnum», но не зависящий от меняющегося имени переменной, поскольку мне нужны были два одинаковых стиля, если бы вы ожидали переменную, называемую «CurrentStatusEnum», а другую, если var name будет другим, например, «NewStatusEnum». Прибегая к сопоставлению свойство как «Текст» позволит мне использовать тот же стиль, когда я когда-либо использовать TextBlock