问题描述
当用户按下某个按钮时,我希望该按钮消失并由“确认”按钮代替。以下代码是我认为会使按钮消失的代码,但是当我单击按钮时,什么也没有发生。使用Caliburn Micro约定将DeleteButton()方法正确地连接到XAML。如何从viewmodel控制按钮的可见性或任何其他属性?谢谢。
XAML:
<Button x:Name="DeleteButton" Visibility="{Binding DeleteButtonVisibility}"/>
viewmodel:
bool _deleteButtonVisibility = true;
public bool DeleteButtonVisibility
{
get { return _deleteButtonVisibility; }
set
{
_deleteButtonVisibility = value;
NotifyOfPropertyChange(() => DeleteButtonVisibility);
}
}
public void DeleteButton()
{
DeleteButtonVisibility = false;
}
解决方法
可见性不是布尔值,而是System.Windows.Visibility
尝试一下:
Visibility _deleteButtonVisibility = Visibility.Visible;
public Visibility DeleteButtonVisibility
{
get { return _deleteButtonVisibility; }
set
{
_deleteButtonVisibility = value;
NotifyOfPropertyChange(() => DeleteButtonVisibility);
}
}
public void DeleteButton()
{
DeleteButtonVisibility = Visibility.Collapsed;
}