Значения IMultiValueConverter в порядке, но CommandParameter равен нулю - PullRequest
3 голосов
/ 05 января 2011

Я пытаюсь передать несколько значений через IMultiValueConverter команде (в качестве параметра команды).Значения верны, когда они проходят через конвертер, но после вызова команд Can_Execute () и Execute () я получаю массив нулевых объектов.Есть идеи?

Xaml:

    <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:

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, чтобы я мог передать некоторую дополнительную информацию команде.

1 Ответ

6 голосов
/ 05 января 2011

Возвращение Values.Clone () вместо просто значений из конвертера, кажется, решает проблему, но я не уверен, что это лучшее, что нужно сделать ...

...