一个Silverlight项目中,需要将某个Image的Visibility属性值绑定到其ViewModel的某个bool值上,最初想当然的将绑定语句写为:
<Image Source="../images/warning.png" Visibility="{Binding
IsWarningShow}"/>
这才发现Visibility属性并不是bool类型,此绑定会出错( VS的输出窗口会有详细信息)
IValueConverter
登场!-
IValueConverter可作为数据源与界面的一个桥梁,可以按需要(界面的需要)将来自数据源的数据值进行转换,并在界面中使用。
添加Bool 到Visibility的转换类:
public class BoolToVisibilityConverter : IValueConverter
{
#region IValueConverter Members
public object
Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
if (value
== null) { return null; }
if (targetType ==
typeof(Visibility))
{
return (bool)value ?
Visibility.Visible : Visibility.Collapsed;
}
return null;
}
public object ConvertBack(object value,
Type targetType, object parameter, System.Globalization.CultureInfo
culture)
{
if (value == null) { return null;
}
if (targetType == typeof(Visibility))
{
return (bool)value ? Visibility.Visible :
Visibility.Collapsed;
}
return null;
}
#endregion
}
在界面用户控件中使用该转换类:
添加该转换类的引用并加入resrouces
xmlns:converter="clr-namespace:mynamespace;assembly=myassembly"
<UserControl.Resources>
<converter:BoolToVisibilityConverter
x:Key="BoolToVisibilityConverter"/>
</UserControl.Resources>
绑定修改为:
<Image Source="../images/warning.png" Visibility="{Binding
IsWarningShow, Converter={StaticResource BoolToVisibilityConverter} }"/>
相关推荐
这本书是配合WPF的书籍的,在进行WPF开发时需要使用XMAL语言,这本书讲的挺好的,跟大家分享一下。
将矢量图转xmal,SVG 图片转换为适合 WPF 使用的 XAML 代码
WPF 加载自定义字体,xmal 和 cs两种加载方式,项目中带了字体,所以有点大
一个简单的C#代码,用来学习和了解XMAL 绘制基本形状,适合初学者学习。
WPF纯用XMAL画图标,path的使用技巧。
Xmal可解释的Android恶意软件分类器 什么是Xmal? Xmal是一种新颖且可解释的基于ML的方法,可以对恶意软件进行高精度分类并同时解释分类结果。 它允许用户识别恶意软件并指出恶意行为。 您可以了解将Android应用...
需要把3ds格式的文件转换为xaml文件
WPF揭秘(中文版)第二章 XMAL揭秘.pdf
1.公司的雇员可以凭借密码、胸卡或指纹进入公司 2.计算机根据雇员的验证方式对其身份进行验证 3.管理员在监控室可以通过按钮直接开启电子门 4.访客可以按门铃请求进入,由管理员为其放行 5.管理员可以为新职员设置...
KaXaml是一个轻量级的XAML编辑器,它的创建时为了更好的开发使用WPF,用了一下感觉还不错,希望KaXaml能够带着刚学习的朋友们更好的学习WPF。
Button自定义样式
上次只发了应用程序,这次把代码送上,实现了多个功能,请读者自己发掘,操作绝对简单
WPF的动画功能可以让开发人员很容易地在程序中添加动态效果。虽然掌握WPF动画类的全部内容看起来并非易事,但在WPF中动画却分解成通过改变属性的值(随时间而变化)来达成。动画既可用程序代码也可直接用XAML来实现...
SVG转 XAML最好的免费工具啊, 非常好用,有需要的朋友可以试试
xaml中TextBlock显示上标的方法
将Adobe Illustrator设计图转换为XAML的插件(拷贝至Plug-ins目录下即可)
资源为一个DLL文件,是Reflector的插件,需要配合Reflector工作。具体请看压缩包里的说明。 使用该插件可以从常规.NET-WPF的程序集(DLL和EXE)中导出XAML文件。没有测试过silverLight。
适合:自学WPF的初学者。此文档源自微软官网原文翻译。为入门文档,后继文档正在紧张翻译中。 笔者在学习WPF时有一个非常痛苦的经验,那就是,市场上买的书要么就晦涩难懂,要么就不尽不实;于是,我自己去微软的...
一个宿主页面当中嵌入2个XAML页面并互相调用 一个宿主页面当中嵌入2个XAML页面并互相调用