首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Silverlight3和IMultiValueConverter

Silverlight3和IMultiValueConverter
EN

Stack Overflow用户
提问于 2009-07-20 21:54:43
回答 3查看 3.4K关注 0票数 1

如你所知,Silverlight3不支持IMultiValueConverter和...我非常需要它。一个Web服务代理,它定义了我需要在UI中显示的类结构。对象定义类有一些数组属性,如string[]、int[]等。当我将这些属性绑定到TextBlock时,TextBlock的Text属性变成了System.String[]或System.Int[]。相反,我希望看到一个用逗号分隔的字符串或数字列表。

我考虑过使用IMultiValueConverter,但Silverlight3不支持它。我该如何解决这个问题?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-20 22:01:58

IMultiValueConverter的目的是实现支持多绑定(即MultiBinding对象)的转换器。在您的情况下,这似乎并不是您真正需要的。

如果您想要将数组(例如string[])转换为文本值,则只需定义一个普通的IValueConverter即可完成此操作。不要让一个数组包含多个值这一事实让您感到困惑。

下面是一个示例转换器:

代码语言:javascript
复制
[ValueConversion(typeof(string[]), typeof(string))] 
public class StringArrayConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return string.Join(", ", (string[])value);
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

希望这能有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2009-07-20 22:01:01

在你的场景中,我没有看到多值转换器的用法。您可以创建一个IValueConverter,它接受数组并返回逗号分隔的字符串

代码语言:javascript
复制
<TextBlock Text="{Binding ArrayProperty,Converter={StaticResource stringArrayToString}}" ...
票数 0
EN

Stack Overflow用户

发布于 2009-07-21 08:23:08

如果你还想使用MultiBinding和IMultiValueConverter,你可以使用this one by Colin Eberhardt。真的很好用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1156177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档