我无法让我的约束力发挥作用。我的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
任何帮助都会很棒。感谢
答案 0 :(得分:0)
一种可能性:
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type r:RibbonButton}}, Path=SelectedItems}"
另外,您可以将一个属性SelectedItems添加到ViewModel中,绑定它并让它始终保持同步并准备好运行命令