我想在與DataTemplate關聯的上下文菜單中使用CommandParameter屬性。 commandParameter應該包含對觸發數據模板的對象的引用,如下面的代碼示例所示。我嘗試使用「{Binding Path = this}」,但它不起作用,因爲「this」不是屬性。該命令觸發但我無法獲得正確的參數。有沒有人有一個想法如何做到這一點?如何從XAML中的DataTemplate引用匹配對象?
注意:我刪除了Command =「{Binding DeleteSelectedMeetingCommand}」,將其替換爲對視圖定位器的引用,並且該命令正在觸發。
<DataTemplate DataType="{x:Type Models:MeetingDbEntry}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Path=HostTeam}"/>
<TextBlock Grid.Column="1" Text="{Binding Path=GuestTeam}"/>
<TextBlock Grid.Column="2" Text="{Binding Path=Result}"/>
<Grid.ContextMenu>
<ContextMenu Name="MeetingMenu">
<MenuItem Header="Delete"
Command="{Binding
Source={StaticResource Locator},
Path=Main.DeleteSelectedMeetingCommand}"
CommandParameter="{Binding Path=this}"/>
</ContextMenu>
</Grid.ContextMenu>
</Grid>
</DataTemplate>
感謝,
感謝您的回答。事實上,我使用了類似的方法,我將選定的項目綁定到一個屬性,並使用了一個不帶參數的命令。該命令然後使用選定的屬性來刪除該對象。但我試圖在MVVM Light toolkit中探索RelayCommand的模板化版本,並且我想通過XAML直接綁定到RelayCommand,而無需爲綁定指定特定代碼(我成功通過click屬性進行綁定)。 – 2010-07-15 11:08:27