Как отобразить всплывающую подсказку в XAML? - PullRequest
3 голосов
/ 27 октября 2010

Я пишу приложение, используя WPF MVVM. У меня есть модель представления со свойством IsFolderSelected следующим образом:

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

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

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

И у меня есть элемент TextBox в XAML:

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

Как принудительно вызвать всплывающую подсказку из TextBox, если свойство IsFolderSlected == false?

1 Ответ

6 голосов
/ 27 октября 2010

Чтобы придерживаться модели MVVM, я думаю, что будет трудно достичь с помощью всплывающей подсказки.Вы можете использовать всплывающее окно и связать свойство 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>
...