MVVM on按钮单击更改文本框的可见性

3 c# wpf mvvm

我对MVVM技术很陌生,似乎无法在任何地方找到我的问题的答案.有人可以给我一个如何让它工作的详细例子.我试图按钮点击有一个文本框显示自己.

到目前为止我有这个.WPF

<TextBox Visibility="{Binding IsVisibleBoolean, Converter={StaticResource boolToVis}}"
        Height="23" HorizontalAlignment="Left" Margin="340,439,0,0" Name="textBox2" VerticalAlignment="Top" Width="180" />

<Button  Command="{Binding IsVisibleBoolean}" Height="32" Margin="526,401,142,0" Name="button2" VerticalAlignment="Top" BorderThickness="0"  Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"/>
Run Code Online (Sandbox Code Playgroud)

C#Viewmodel

private bool _isVisibleBoolean = false;
    public bool IsVisibleBoolean
    {
        get { return _isVisibleBoolean; }
        set
        {
            if (_isVisibleBoolean == value)
                return;
            _isVisibleBoolean = value;
            RaisePropertyChanged("IsVisibleBoolean");
        }
    }
Run Code Online (Sandbox Code Playgroud)

和我的booleanconvert类

public class BooleanToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter,
                          CultureInfo culture)
    {
        if (value is Boolean)
        {
            return ((bool)value) ? Visibility.Visible : Visibility.Collapsed;
        }

        return value;
    }

    public object ConvertBack(object value, Type targetType, object parameter,
                              CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助都会很棒.

Mic*_*ter 5

Command属性上Button应该绑定到一个ICommand对象.您将它绑定到布尔属性.如果要保持此命令的基础,请创建一个实现的类,ICommand并在该Execute方法中设置IsVisibleBoolean视图模型.

或者更简单的方法:使用a ToggleButton而不是a Button.