Если в окошке программы есть какой-то элемент, например, ListView, то его можно при необходимости скрыть просто установив значение Visibility равным Collapsed. Если же мы делаем привязку к переменной типа Boolean, то там есть только два значения: true или false, при этом у Visibility три варианта: Visible, Hidden и Collapsed. То есть нельзя использовать такой код:
<ScrollViewer
Visibility="{Binding Source={x:Static Application.Current},Path=DescriptionPane}">
</ScrollViewer>
где DescriptionPane — это true или false, в зависимости от того, нужно показывать панельку или нет.
Если оставить всё так, то получим ошибку:
Error XDG0010 ‘Microsoft.VisualStudio.XSurface.Wpf.Application.Current’ StaticExtension value cannot be resolved to an enumeration, static field, or static property.
Раньше нужно было писать отдельный конвертер, но сейчас достаточно использовать встроенный:
MainWindow.xaml
<ScrollViewer Visibility="{Binding Source={x:Static Application.Current},Path=DescriptionPane, Converter={StaticResource VisibleIfTrueConverter}}" </ScrollViewer>
Но для этого необходимо сначала его объявить в ресурсах:
MainWindow.xaml
<Window x:Class="Sample.MainWindow"
...
<Window.Resources>
<BooleanToVisibilityConverter x:Key="VisibleIfTrueConverter" />
</Window.Resources>
DenTNT недавно публиковал (посмотреть все)
- C#: Добавить поддержку перезапуска приложения - 21.02.2025
- EVE-Online: Отобразить информацию о соединении и fps - 20.02.2025
- WPF: Отображение прогресса с помощью async/await - 13.02.2025