Если в окошке программы есть какой-то элемент, например, 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#: Сравнить два массива - 12.12.2024
- EVE-Online: Фильтры каналов - 23.11.2024
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024