我对 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/