2016-11-30 2 views
0

Я новичок в xaml и не знаю, как работает databind. Я пытаюсь включить текст подсказки, когда мое текстовое поле равно null. Но я не уверен, как работает привязка данных, чтобы отключить его, когда он не равен нулю.Как я могу установить текст подсказки (cue banner) в текстовом поле, когда он пуст или пуст, и отключить, если он не пуст или не равен нулю?

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

<TextBox Grid.Row="1"> 
    <TextBox.Style> 
     <Style TargetType="TextBox" xmlns:sys="clr-namespace:System;assembly=mscorlib"> 
      <Style.Resources> 
       <VisualBrush x:Key="CueBannerBrush" AlignmentX="Left" AlignmentY="Center" Stretch="None"> 
        <VisualBrush.Visual> 
         <Label Content="First Name" Foreground="LightGray" /> 
        </VisualBrush.Visual> 
       </VisualBrush> 
      </Style.Resources> 
      <Style.Triggers> 
       <Trigger Property="Text" Value="{x:Static sys:String.Empty}"> 
        <Setter Property="Background" Value="{StaticResource CueBannerBrush}" /> 
       </Trigger> 
       <Trigger Property="Text" Value="{x:Null}"> 
        <Setter Property="Background" Value="{StaticResource CueBannerBrush}" /> 
       </Trigger> 
       <Trigger Property="IsKeyboardFocused" Value="True"> 
        <Setter Property="Background" Value="White" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </TextBox.Style> 

    <TextBox.Template> 
     <ControlTemplate> 
      <TextBox Text="{Binding SelectedItem.FirstName,UpdateSourceTrigger=PropertyChanged}"/> 
     </ControlTemplate> 
    </TextBox.Template> 
</TextBox> 
+1

Возможный дубликат текста [Watermark/hint text/placeholder TextBox в WPF] (http://stackoverflow.com/questions/833943/watermark-hint-text-placeholder-textbox-in-wpf) –

+0

Я отозвал свой закрытый голос как только я понял, что вы примете свой пример из [предыдущего ответа] (https://stackoverflow.com/questions/39213504/how-to-apply-cuebanner-for-a-textbox-in-xaml). Вы просто хотите отключить его значение IF = не null? –

+0

Я просто хотел связать текст. Я понял, просто поместив привязку в начало Van

ответ

0

Ничего, что я понял.

Я мог бы установить текстовое поле привязки, как:

<TextBox Text="{Binding SelectedItem.FirstName, 
         UpdateSourceTrigger=PropertyChanged}" 
     Grid.Row="1"> 

Я не знаю, что вы могли бы сделать, если вы имели открытия и закрытия <textbox> и </textbox> теги.

Я думал, что вы можете сделать это, только если textbox имеет самозакрывающийся тег (<textbox />).

Извините за глупый вопрос.