1

バインディングを機能させることができません。私の ActiveView には、ListView (x:Name="MyListView") と、データ コンテキストとしてのビュー モデルがあります。

次のRibbonButton(RibbonControlLibrary)があります:

<r:RibbonButton Label="Update Software" 
    LargeImageSource="/Ganymed.App.UI;component/Images/plain-update.png"
    Command="{Binding ActiveView.DataContext.UpdateSoftwareCommand}"
    CommandParameter="{Binding ActiveView.MyListView.SelectedItems}"/>

コマンドバインディング自体は正常に機能します。しかし、CommandParameter を機能させることができません。コマンドを有効にするかどうかを決定するために、ActiveView の ListView の選択した項目を送信したいと考えています。CommandParameter をバインドするときに何か不足していますか?

構造を明確にするには:

MainWindow.xaml (RibbonButton、DataContext = MainWindowViewModel を含む)

MainWindowViewModel.cs にはプロパティ ActiveView が含まれています

ActiveView (MyListView、DataContext = ActiveViewViewModel を含む)

ActiveViewViewModel.cs には UpdateSoftwareCommand が含まれています

どんな助けでも素晴らしいでしょう。ありがとう

4

1 に答える 1

1

1つの可能性:

 CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type r:RibbonButton}}, Path=SelectedItems}"

別の方法として、プロパティ SelectedItems を ViewModel に追加し、それをバインドして、常に同期し、コマンドで操作できるようにすることができます。

于 2012-03-16T21:11:59.670 に答える