Question

Je suis en train de passer plusieurs valeurs par une IMultiValueConverter à une commande (comme paramètre de commande). Les valeurs sont correctes quand ils passent par le convertisseur, mais une fois le Can_Execute () et execute () comands s'appelle, je reçois un tableau d'objets nuls. Toutes les idées?

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>

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

Le code fonctionnait très bien quand je n'utilisais pas un MultiBinding et le convertisseur, mais je dois le MultiBinding je peux transmettre des informations supplémentaires à la commande.

Était-ce utile?

La solution

De retour Values.Clone () au lieu de simplement valeurs du convertisseur semble résoudre le problème, mais je ne suis pas sûr que ce soit la meilleure chose à faire ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top