2013-01-11 78 views
0

的IsReadOnly屬性我使用MultiDataTrigger多行TextBoxMultiDataTrigger不會改變文本框

<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 Property="TextBox.IsReadOnly" Value="False" /> 

我在做什麼錯?

僅限Ritesh

回答

1

你不應該expicitly設置IsReadolny爲True 使用MultiDataTrigger你已經有了,只要你想讓它設置爲false,另外一個將其設置爲true,但在文本框屬性

不要把它設置
+0

我原本沒有將IsReadOnly屬性設置爲True。按照你的建議,我定義了多個MultiDataTrigger(一個是** true **,另一個是** false **),它可以工作。但是它不能用於單個MultiDataTrigger嗎? – Ritesh

+0

我剛剛在定義TextBox.Style之前討論了放置在Textbox屬性中的IsReadOnly =「True」。一旦你刪除它,它可以只用一個MultidataTrigger。 – iltzortz