创建视图模型属性
public bool IsVisible
{
get
{
return _isVisible;
}
set
{
if (_isVisible == value)
{
return;
}
_isVisible = value;
RaisePropertyChanged("IsVisible");
}
}
,这样你们需要一个转换BoolToVisibility转换使BoolToVisibilityConverter类
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (parameter == null)
{
return ((bool)value == true) ? Visibility.Visible : Visibility.Collapsed;
}
else if (parameter.ToString() == "Inverse")
{
return ((bool)value == true) ? Visibility.Collapsed : Visibility.Visible;
}
return false;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
现在绑定文本框,并使用转换器这会返回一个布尔值
<UserControl.Resources>
<local:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
</UserControl.Resources>
<Textbox x:name="textbox2" Visibility={Binding IsVisible,
Converter={StaticResource BoolToVisibilityConverter}}/>
就是这样。
来源
2012-02-15 12:06:26
R76
其中的Silverlight版本您使用的? – slugster 2010-06-23 09:54:06
MVVM不是没有代码背后。如果你的代码只影响View,那么你并没有违反MVVM的代码。事实上,在您的ViewModel中放置View逻辑对于MVVM来说不仅仅是一个简单的事件处理程序。 – cadrell0 2011-06-09 14:12:56