2010-10-27 12 views
3

J'écris une application en utilisant WPF MVVM. J'ai un modèle de vue avec la propriété IsFolderSelected comme ceci:Comment afficher l'info-bulle dans XAML?

public class SelectFolderViewModel : ViewModelBase 
{   
    public bool IsFolderSelected 
    { 
     get 
     { 
      return _isFolderSelected; 
     } 

     set 
     { 
      if (_isFolderSelected == value) 
      { 
       return; 
      } 

      _isFolderSelected = value; 
      RaisePropertyChanged(IsFolderSelectedPropertyName); 
     } 
    } 
} 

Et j'ai un élément TextBox en XAML:

 <TextBox 
      Text="{Binding Path=FolderPath}" 
      ToolTip="Please select folder"/> 

Comment puis-je forcer l'affichage infobulle de la zone de texte lorsque la propriété IsFolderSlected == false?

Répondre

5

Pour conserver votre modèle MVVM, je pense qu'il sera difficile à réaliser avec une info-bulle. Vous pouvez utiliser une fenêtre contextuelle et lier la propriété IsOpen.

<TextBox Grid.Row="1" x:Name="folder" 
     Text="{Binding Path=FolderPath}" 
     ToolTip=""/> 
    </StackPanel> 

    <Popup PlacementTarget="{Binding ElementName=folder}" IsOpen="{Binding IsFolderSelected, Mode=TwoWay}"> 
     <Border Margin="1"> 
     <TextBlock Background="White" Foreground="Black" Text="Please select folder"></TextBlock> 
     </Border> 
    </Popup> 
+0

Popup! Je vous remercie! – DanilaNV