Триггер WPF TextBox для очистки текста - PullRequest
10 голосов
/ 03 мая 2010

У меня много TextBox элементов управления, и я пытаюсь написать стиль, который очищает свойство Text , когда Элемент управления отключен . Я не хочу, чтобы позади кода были обработчики событий.

Я написал это:

<Style TargetType="{x:Type TextBox}">                            
 <Style.Triggers>
  <Trigger Property="IsEnabled" Value="False">                                    
   <Setter Property="Text" Value="{x:Null}" />
  </Trigger>                                
 </Style.Triggers>
</Style>

Проблема в том, что если TextBox определен как:

<TextBox Text={Binding Whatever} />

тогда триггер не работает (вероятно, потому что он связан) Как преодолеть эту проблему?

1 Ответ

15 голосов
/ 03 мая 2010

Поскольку вы явно устанавливаете текст в TextBox, триггер стиля не может его перезаписать. Попробуйте это:

<TextBox>
    <TextBox.Style>
        <Style TargetType="{x:Type TextBox}">
            <Setter Property="Text" Value="{Binding Whatever}" />

            <Style.Triggers>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Text" Value="{x:Null}" /> 
                </Trigger>
            </Style.Triggers>
        </Style> 
    </TextBox.Style>
</TextBox>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...