我有这个listBox被填充,每个项目可以是男性或女性,具体取决于绑定到列表框的“SEX”属性. (可以是男性’M’,女性’F’)…
对于每个项目,我想根据列表项SEX属性显示一个男性或女性符号.
例如,如果“{Binding SEX}”等于’M’:
<Image Source="../Images/male48.png" Visibility="Visible" />
如果“{Binding SEX}”等于’F’:
<Image Source="../Images/female48.png" Visibility="Visible" />
我该怎么去做这个工作?
解决方法
这个问题的一个常见方法是创建一个值转换器,它将绑定返回的值转换为与UI控件的属性相关的其他值.
您可以创建一个转换器,并将其映射到图像源:
public class SexToSourceConverter : IValueConverter { public object Convert(object value,string typeName,object parameter,string language) { string url = ((string)value == "M") ? "../Images/male48.png" : "../Images/female48.png"; return new BitmapImage(new Uri(url,UriKind.Relative)); } public object ConvertBack(object value,string language) { throw new NotImplementedException(); } }
在您的XAML中使用它,如下所示:
<Image Source="{Binding Path=Sex,Converter={StaticResource SexToSourceConverter }" />
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。