c# - 按钮上的 MVVM 单击更改文本框的可见性

标签 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}}"/>

C# View 模型

private bool _isVisibleBoolean = false;
    public bool IsVisibleBoolean
    {
        get { return _isVisibleBoolean; }
        set
        {
            if (_isVisibleBoolean == value)
                return;
            _isVisibleBoolean = value;
            RaisePropertyChanged("IsVisibleBoolean");
        }
    }

和我的 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();
    }
}

任何帮助都会很棒。

最佳答案

Button 上的Command 属性应该绑定(bind)到一个ICommand 对象。您将其绑定(bind)到 bool 属性。如果您想保持此命令为基础,请创建一个实现 ICommand 的类,并在 Execute 方法中设置 View 模型的 IsVisibleBoolean

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

关于c# - 按钮上的 MVVM 单击更改文本框的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17074355/

相关文章:

c# - 通过 C# 使用 VBA 在 Excel 中禁用保存功能

c# - 空字符串上的数据触发

c# - 基于控制台格式化代码的格式化字符串

wpf - 分层数据、catel 和 MVVM

c# - 如何使用 <asp :scriptreference> in asp.net 4.5 包含最新的 Jquery?

c# - 如何在 WPF 上使用 ICommand 的 CanExecute 方法

c# - 组合框 isEditablelostFocus 在获得焦点时调用

带有 MVVM 的 XAML Master/模板页面

events - 将 UserControl 卸载事件绑定(bind)到 ViewModel

.net - 有人可以帮我记忆一下这个框架/技术叫什么吗?