首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可以使用null值,但CommandParameter为IMultiValueConverter

可以使用null值,但CommandParameter为IMultiValueConverter
EN

Stack Overflow用户
提问于 2011-01-06 00:56:58
回答 1查看 2.1K关注 0票数 3

我尝试通过IMultiValueConverter将多个值传递给一个命令(作为命令参数)。这些值在通过转换器时是正确的,但是一旦调用了Can_Execute()和Execute()命令,我就会得到一个空对象数组。有什么想法吗?

Xaml:

代码语言:javascript
运行
复制
    <Button Content="+" HorizontalAlignment="Right" VerticalAlignment="Top" Width="23" Height="23" Margin="0,0,0,0">
        <Button.CommandParameter>
            <MultiBinding Converter="{StaticResource Converter_MultipleValues}">
                <Binding/>
            </MultiBinding>
        </Button.CommandParameter>
        <Button.Command>
            <Binding Path="Command_Add_Files" Source="{StaticResource Vm_FileList}"/>
        </Button.Command>
    </Button>

IMultiValueConverter类:

代码语言:javascript
运行
复制
class cvt_multivalue : IMultiValueConverter {
    public object Convert (object[] Values, Type Target_Type, object Parameter, CultureInfo culture) {
        if (Target_Type != typeof (object)) throw new NotSupportedException ();
        return Values;
        }

    public object [] ConvertBack (object Value, Type [] Target_Type, object Parameter, CultureInfo culture) {
        throw new NotSupportedException ();
        }
    }

当我不使用MultiBinding和转换器时,代码工作得很好,但是我需要MultiBinding,这样我就可以向命令传递一些额外的信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-06 01:23:47

返回Values.Clone()而不仅仅是转换器的值似乎解决了这个问题,但我不确定这是否是最好的做法……

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

https://stackoverflow.com/questions/4606811

复制
相关文章

相似问题

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