我正在開發一個Silverlight 4應用程序,並希望實現一個看似簡單的任務: 我有這樣的DataGrid:Silverlight的DataGrid中:文本菜單工具包在整個行
<sdk:DataGrid x:Name="dg" Grid.Row="1" Grid.ColumnSpan="2" Width="800" ItemsSource="{Binding SearchResults}" AutoGenerateColumns="False" >
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn SortMemberPath="Name" Header="Name" CellTemplate="{StaticResource SearchGridNameFieldtemplate}">
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn SortMemberPath="samAccountName" Header="Kontoname" CellTemplate="{StaticResource SearchGridAccountNameFieldtemplate}">
</sdk:DataGridTemplateColumn>
<sdk:DataGridTextColumn Header="Description"
Binding="{Binding Principal.Description}" />
<sdk:DataGridTextColumn Header="Container"
Binding="{Binding Principal.ContainerDN}" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
現在我使用一個DataTemplate的TemplateColumn中它採用了工具包的ContextMenu這樣
<DataTemplate x:Key="DirectoryUserSearchItemViewModel" >
<StackPanel Orientation="Horizontal">
<controlsInputToolkit:ContextMenuService.ContextMenu>
<controlsInputToolkit:ContextMenu>
<controlsInputToolkit:MenuItem Header="Eigenschaften" Command="{Binding EditItem}" Visibility="{Binding User.DistinguishedName, Converter={StaticResource UserPermissionVisibilityConverter},ConverterParameter=1;8}" CommandParameter="{Binding User}">
<controlsInputToolkit:MenuItem.Icon>
<Rectangle Width="16" Height="16" Fill="{StaticResource MoveUpBrush}"/>
</controlsInputToolkit:MenuItem.Icon>
</controlsInputToolkit:MenuItem>
<controlsInputToolkit:MenuItem Header="User endgültig löschen" Command="{Binding HardDeleteAccount}" Visibility="{Binding HardDeleteCommandVisibility}" CommandParameter="{Binding User}">
<controlsInputToolkit:MenuItem.Icon>
<Rectangle Width="16" Height="16" Fill="{StaticResource MoveUpBrush}"/>
</controlsInputToolkit:MenuItem.Icon>
</controlsInputToolkit:MenuItem>
<controlsInputToolkit:MenuItem Header="Externe Anwendung ausführen" Command="{Binding ExecuteExternalApplication}" CommandParameter="{Binding User}">
<controlsInputToolkit:MenuItem.Icon>
<Rectangle Width="16" Height="16" Fill="{StaticResource MoveUpBrush}"/>
</controlsInputToolkit:MenuItem.Icon>
</controlsInputToolkit:MenuItem>
</controlsInputToolkit:ContextMenu>
</controlsInputToolkit:ContextMenuService.ContextMenu>
<TextBlock Text="{Binding Principal.Name}"/>
</StackPanel>
</DataTemplate>
這裏是最有趣的部分:難道我真的有複製粘貼在我的網格整個上下文菜單DataTemplate中的每一列,如果我希望能夠到右行的任意位置單擊和激活上下文米ENU?我不能設置此爲一整行?在計算器didnt其他帖子似乎給了一個答案,這個特定的問題。
只是一個謹慎的話,如果你這樣做,你可能會想脫離在「UnloadingRow」上下文菜單,以防止內存泄漏。 – McGarnagle