Правильный способ сделать это в WPF - это иметь модель представления , которую вы присоединяете к контексту данных окна или элемента управления. Затем вы привязываете свойство модели представления к свойству Visibility
изображения.
public class MyViewModel : INotifyPropertyChanged
{
private bool _isImageVisible;
public bool IsImageVisible
{
get { return _isImageVisible; }
set {
if (value != _isImageVisible) {
_isImageVisible = value;
OnPropertyChanged(nameof(ImageVisibility));
}
}
}
public Visibility ImageVisibility => _isImageVisible
? Visibility.Visible
: Visibility.Hidden; // or Collapsed
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
В XAML
<Image Source="Max_dog.png" Grid.Column="0" Grid.Row="0"
Visibility="{Binding ImageVisibility}"/>
Не то чтобы вы не могли связать свойство Visibility
с логическим значением. Поэтому я сделал два свойства логическим свойством, которое вы можете легко установить, и еще одно, выставив необходимое перечисление Visibility
.