Szukałem rozwiązania w Internecie, ale nie udało mi się go znaleźć w mojej próbce. Potrzebuję dodać separator między elementem menu kontekstowego, które są generowane z kodu za. Próbowałem dodać to z takimi liniami kodu jak poniżej, ale bez powodzenia.Jak dodać poziomy separator do dynamicznie utworzonego kontekstowego menu?
this.Commands.Add(new ToolStripSeparator());
Zastanawiam się, czy ktoś może pomóc. Z góry dziękuję.
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#, które dodaje się w sposób:
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);
Dziękuję za udostępnienie tej techniki. – vladc77
Nie jest to świetny pomysł, jeśli chcesz zachować separację widoku modelu. –
Nie wiem, dlaczego. Ten kod znajduje się w ViewModel, więc jest oddzielny od widoku.Wartość True zawiera kontrolki interfejsu użytkownika związane z widokiem, a jeśli chcesz je wyłączyć z ViewModel, możesz umieścić całą funkcjonalność w zachowaniu i mieć to powiązanie z listą poleceń dla elementów menu z fałszywym poleceniem dla separatora. – samneric