Контекстное меню для XAML Treeviewitem (Отличенный различными атрибутами)

Я разрабатываю веб-приложения ASP.NET. Существует мало возможности использовать многоядерный непосредственно в моем коде, однако IIS уже масштабируется хорошо для нескольких ядер/ЦП путем порождения нескольких потоков/процессов рабочего когда при загрузке.

22
задан Ian Ringrose 18 February 2016 в 11:32
поделиться

2 ответа

XAML

<TreeView Name="SolutionTree"  BorderThickness="0" SelectedItemChanged="SolutionTree_SelectedItemChanged"  >
  <TreeView.Resources>
    <ContextMenu x:Key ="SolutionContext"  StaysOpen="true">
      <MenuItem Header="Add..." Click="AddFilesToFolder_Click"/>
      <MenuItem Header="Rename"/>
    </ContextMenu>
    <ContextMenu x:Key="FolderContext"  StaysOpen="true">
      <MenuItem Header="Add..." Click="AddFilesToFolder_Click"/>
      <MenuItem Header="Rename"/>
      <MenuItem Header="Remove"/>
      <Separator/>
      <MenuItem Header="Copy"/>
      <MenuItem Header="Cut"/>
      <MenuItem Header="Paste"/>
      <MenuItem Header="Move"/>
    </ContextMenu>
  </TreeView.Resources>
</TreeView>

C-sharp

private void SolutionTree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
    TreeViewItem SelectedItem = SolutionTree.SelectedItem as TreeViewItem;
    switch (SelectedItem.Tag.ToString())
    {
        case "Solution":
            SolutionTree.ContextMenu = SolutionTree.Resources["SolutionContext"] as System.Windows.Controls.ContextMenu;
            break;
        case "Folder":
            SolutionTree.ContextMenu = SolutionTree.Resources["FolderContext"] as System.Windows.Controls.ContextMenu;
            break;
    }
}
31
ответ дан 29 November 2019 в 03:53
поделиться

Вы можете определить ContextMenu в нескольких стилях и выбрать стиль, используя ItemContainerStyleSelector , на основе этих атрибутов.

Или вы можете напрямую указать ItemContainerStyle и выбрать соответствующее ContextMenu с помощью триггеров

15
ответ дан 29 November 2019 в 03:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: