C#:Caliburn Micro:如何使用数据绑定控制WPF Button的属性?

问题描述

用户按下某个按钮时,我希望该按钮消失并由“确认”按钮代替。以下代码是我认为会使按钮消失的代码,但是当我单击按钮时,什么也没有发生。使用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;
    }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...