Почему я не могу использовать DataTrigger для установки TextBox.IsEnabled = True?

В моем приложении есть текстовое поле, которое я хочу включить / отключить на основе перечисления в моем datacontext. Перечисление имеет три значения (Anyone, Me, Someone), и я хочу включить текстовое поле, когда установлено значение Someone. Я могу взломать решение, установив значение в обратном порядке (см. ниже). Однако кто-нибудь может объяснить, почему первое решение не сработало?

Это не работает ...

<TextBox Text="{Binding ModifiedUser, UpdateSourceTrigger=PropertyChanged}"
         IsEnabled="False">
    <TextBox.Style>
        <Style TargetType="{x:Type TextBox}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding ModifiedBy}"
                             Value="Someone">
                    <Setter Property="IsEnabled"
                            Value="True" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>
</TextBox>

Как ни странно, этот код работает .

<TextBox Text="{Binding ModifiedUser, UpdateSourceTrigger=PropertyChanged}">
    <TextBox.Style>
        <Style TargetType="{x:Type TextBox}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding ModifiedBy}"
                             Value="Anyone">
                    <Setter Property="IsEnabled"
                            Value="False" />
                </DataTrigger>
                <DataTrigger Binding="{Binding ModifiedBy}"
                             Value="Me">
                    <Setter Property="IsEnabled"
                            Value="False" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>
</TextBox>
5
задан Nescio 2 June 2011 в 06:36
поделиться