好吧,夥計們。我已經嘗試了大約3天,並沒有任何數量的谷歌搜索幫助。下面是我的XAML的片段(應該足以跟上)。 我的問題是「ContextMenu」的命令。 正如你所見,我有DeleteTagCommand。現在,如果我把它放在CheckBoxCommand的位置上,那麼這個命令就可以工作,這很棒..但是它只是在當前位置被調用,而且它讓我瘋狂。綁定命令 - 祖先
<ScrollViewer Grid.Column="0">
<StackPanel Orientation="Vertical">
<ItemsControl ItemsSource="{Binding Tags, UpdateSourceTrigger=PropertyChanged}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Value}" Margin="10,5,10,5" Command="{Binding DataContext.CheckBoxCommand,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type Grid}}}"
CommandParameter="{Binding }">
<CheckBox.ContextMenu>
<ContextMenu>
<MenuItem Header="Delete" Command="{Binding DataContext.DeleteTagCommand,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type Grid}}}"
CommandParameter="{Binding}" />
</ContextMenu>
</CheckBox.ContextMenu>
</CheckBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</ScrollViewer>
我已經試過:
- 來自全國各地的演出呼喚「的ElementName」,但它從來沒有被拾起
- 更改「AncestorLevel」淫穢號碼,希望是問題
- 以及更多......
不知道什麼是對你有用的傢伙,但下面是輸出消息我得到
找不到與參考'RelativeSource FindAncestor,AncestorType ='System.Windows.Controls.Grid',AncestorLevel ='1'綁定的源代碼。 BindingExpression:路徑= DataContext.DeleteTagCommand;的DataItem = NULL;目標元素是'MenuItem'(Name ='');目標屬性是「命令」(類型「的ICommand」)
感謝
謝謝。這是我討厭WPF的原因之一。再次,謝謝:) – Oyyou