Триггер не стреляет - PullRequest
       45

Триггер не стреляет

2 голосов
/ 28 июля 2011

Пробовал и пробовал на этом весь день.Я подумал, что было бы лучше опубликовать здесь и получить некоторую обратную связь о том, правильно ли я делаю это или нет.Я просто пытаюсь изменить текст всплывающей подсказки TextBlock, когда установлен переключатель.

Edit: Понял ... Я применил Trigger к DataTemplate вместо самого TextBlock.(См. Ответ)

1 Ответ

4 голосов
/ 28 июля 2011

Если вы установите текст локально, триггер не сможет изменить значение из-за приоритета .

Переместить текст по умолчанию в стиль:

<!-- There are still issues with this -->
<TextBlock Grid.Row="2" Grid.Column="1">
    <TextBlock.Style>
        <Style TargetType="{x:Type TextBlock}">
            <Setter Property="Text" Value="{Binding SIMULATOR_CONTROL_BLADE_DATA.CONTROL_BLADE_ASSEMBLY.REACTOR_CORE_COORDINATE.RCC_REACTOR_Y}"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding radSimulator, Path=IsChecked}" Value="True">
                    <Setter Property="Text">
                        <Setter.Value>
                            <Binding Path="SIMULATOR_CONTROL_BLADE_DATA.CONTROL_BLADE_ASSEMBLY.REACTOR_CORE_COORDINATE.RCC_MODEL_Y"></Binding>
                        </Setter.Value>
                    </Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
</TextBlock.Style>

Эта привязка нарушена:

Binding="{Binding radSimulator, Path=IsChecked}"

Это означает, что вы устанавливаете путь дважды, поскольку введенная строка без имени свойства будет использоваться в качестве пути (см. соответствующий конструктор из Binding), если это возможно будь это?

Binding="{Binding ElementName=radSimulator, Path=IsChecked}"
...