Pregunta

Estoy tratando de pasar varios valores a través de un IMultiValueConverter a un comando (como parámetro del comando). Los valores son correctos cuando van a través del convertidor, pero una vez que el Can_Execute () y ejecutar () comands las llaman, consigo una serie de objetos nulos. Algunas ideas?

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>

clase 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 ();
        }
    }

El código funcionaba bien cuando no estaba usando un MultiBinding y el convertidor, pero necesito el MultiBinding para que pueda pasar alguna información adicional para el comando.

¿Fue útil?

Solución

Volviendo Values.Clone () en lugar de sólo los valores del convertidor parece solucionar el problema, pero no estoy seguro si eso es lo mejor que puede estar haciendo ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top