Tôi đang tìm giải pháp trên internet nhưng không thể tìm thấy nó trong mẫu của tôi. Tôi cần phải thêm một dấu phân cách giữa mục trình đơn ngữ cảnh được tạo ra từ mã phía sau. Tôi đã cố gắng để thêm nó với các dòng mã như dưới đây nhưng không thành công.Làm cách nào để thêm dấu phân cách ngang trong ContextMenu được tạo động?
this.Commands.Add(new ToolStripSeparator());
Tôi tự hỏi nếu ai đó có thể trợ giúp. Cảm ơn bạn trước.
Context Menu XAML:
<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu ItemsSource="{Binding Commands}">
<ContextMenu.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Command" Value="{Binding}" />
<Setter Property="Header" Value="{Binding Path=Text}" />
<Setter Property="CommandParameter" Value="{Binding Path=Parameter}" />
</Style>
</ContextMenu.ItemContainerStyle>
</ContextMenu>
</Setter.Value>
</Setter>
C# mà thêm vào trong phương pháp:
this.Commands = new ObservableCollection<ICommand>();
this.Commands.Add(MainWindow.AddRole1);
this.Commands.Add(MainWindow.AddRole2);
this.Commands.Add(MainWindow.AddRole3);
this.Commands.Add(MainWindow.AddRole4);
//this.Add(new ToolStripSeparator());
this.Commands.Add(MainWindow.AddRole5);
this.Commands.Add(MainWindow.AddRole6);
this.Commands.Add(MainWindow.AddRole7);
Cảm ơn bạn đã chia sẻ kỹ thuật này. – vladc77
Không phải là một ý tưởng tuyệt vời nếu bạn muốn duy trì một mô hình-xem-tách mặc dù. –
Không chắc chắn lý do. Mã này nằm trong ViewModel nên tách biệt với View.True chứa các điều khiển UI có liên quan đến View và nếu bạn muốn giữ chúng khỏi ViewModel, bạn có thể đặt tất cả các chức năng vào một hành vi và liên kết với một danh sách các lệnh cho các mục menu với lệnh giả cho dấu phân cách. – samneric