MultiDataTrigger不会更改TextBox的IsReadOnly属性

时间:2013-01-11 16:58:56

标签: wpf xaml multidatatrigger

我在多行MultiDataTrigger中使用TextBox

<TextBox TextWrapping="Wrap" ScrollViewer.CanContentScroll="True"
                    FlowDirection="RightToLeft" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto"
                    Text="{Binding ArabicDescription}" IsReadOnly="True">
    <TextBox.Style>
        <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
            <Style.Triggers>
                <MultiDataTrigger>
                    <MultiDataTrigger.Conditions>
                        <Condition Binding="{Binding Path=EnableNewEntry}" Value="True" />
                        <Condition Binding="{Binding Path=AllowArabic}" Value="True" />
                    </MultiDataTrigger.Conditions>
                    <Setter Property="IsReadOnly" Value="False" />
                    <Setter Property="Background" Value="Blue" />
                </MultiDataTrigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>
</TextBox>

EnableNewEntryAllowArabic成立时,TextBox应该变为只读。为了进行测试,我也改变了背景颜色。问题是IsReadOnly不会改变Background正确更改的位置。

我也尝试过跟随setter,但它也不起作用:

<Setter Property="TextBox.IsReadOnly" Value="False" />

我做错了什么?

仅限Ritesh

1 个答案:

答案 0 :(得分:1)

你不应该明确地将IsReadolny设置为True 使用你已经拥有的MultiDataTrigger将其设置为false,另一个将它设置为true,只要你想要它但不要在TextBox属性中设置它