2011-01-05 6 views
3

IMultiValueConverterを介していくつかの値を(コマンドパラメータとして)コマンドに渡そうとしています。値はコンバーターを通過するときに正しいですが、Can_Execute()およびExecute()が呼び出されると、nullオブジェクトの配列が取得されます。何か案は?IMultiValueConverterの値は大丈夫ですが、CommandParameterがnullです

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のを必要とするとき、コードがうまく働いていました情報をコマンドに渡します。

答えて

6

ただ値の代わりにClone()を使用するコンバータからの値は問題を修正するようですが、それが実行するのが最も良いかどうかわかりません。

関連する問題