Les valeurs IMultiValueConverter sont d'accord, mais CommandParameter est nulle
-
25-09-2019 - |
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.
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