2012-10-24 8 views
0

У меня есть TreeView, и я хочу иметь возможность добавлять к нему детей и базу данных Linq to SQL, к которой она привязана.Treeview ContextMenu без обработчика событий Click в WPF

Лучшим способом, который я могу придумать (с моей головы), было бы то, чтобы пользователь щелкнул правой кнопкой мыши на родительском узле и имел возможность добавить новый элемент из контекстного меню.

Я добавил контекстное меню, но когда я пытаюсь запрограммировать его в конце, он говорит, что с ним не связан обработчик событий.

 <TreeView Name="TreeView1" Margin="3" ItemsSource="{Binding ElementName=ManufacturerWarranty, Path=ManufacturerQuery, UpdateSourceTrigger=PropertyChanged}"> 
      <TreeView.ItemTemplate> 
       <HierarchicalDataTemplate ItemsSource="{Binding Path=WarrantyList}"> 
        <TextBlock Name="txtManufacturerName" Text="{Binding Path=ManufacturerName}"> 
         <TextBlock.ContextMenu> 
          <ContextMenu> 
           <MenuItem Name="mnuAddRecord" Header="Add Year Record"></MenuItem> 
          </ContextMenu> 
         </TextBlock.ContextMenu> 
        </TextBlock> 
        <HierarchicalDataTemplate.ItemTemplate> 
         <DataTemplate> 
          <TextBlock Text="{Binding Path=Years}"> 
           <TextBlock.ContextMenu> 
            <ContextMenu> 
             <MenuItem Name="mnuDelRecord" Header="Remove Year Record"></MenuItem> 
            </ContextMenu> 
           </TextBlock.ContextMenu> 
          </TextBlock> 
         </DataTemplate> 
        </HierarchicalDataTemplate.ItemTemplate> 
       </HierarchicalDataTemplate> 
      </TreeView.ItemTemplate> 
     </TreeView> 

Каков правильный способ сделать это?

ответ

0

Вы забыли add handler, который будет выполняться на click of menuItem

<ContextMenu> 
    <MenuItem Name="mnuAddRecord" Header="Add Year Record" Click="HandlerInClass"/> 
</ContextMenu> 
+0

Когда я первый имел контекстное меню, как часть самого TreeView я был в состоянии сделать обработчик в коде позади 'юг mnuAddRecord_Click (...) обрабатывает mnuAddRecord.click'. Я также попытался добавить обработчик так, как вы предлагаете, но возникли проблемы с получением информации о записи для исходного узла. Я посмотрю на это больше. – AndyD273

Смежные вопросы