This is a migrated thread and some comments may be shown as answers.

TreeListView and ContextMenu

1 Answer 67 Views
TreeListView
This is a migrated thread and some comments may be shown as answers.
Carlos
Top achievements
Rank 1
Carlos asked on 05 Jun 2013, 03:04 PM
Hi, i am new using telerik controls.

How can i show different items on my contextmenu for some rows in my TreeListView?

This is my xaml code.

<telerik:RadTreeListView AutoExpandItems="{Binding IsChecked,  ElementName=AutoExpandItemsCheckBox, Mode=TwoWay}"
                               x:Name="tlvPlanCuenta" CanUserReorderColumns="False" CanUserSortColumns="False" ColumnWidth="*"
                               IsReadOnly="True" MinHeight="300"  RowIndicatorVisibility="Collapsed"  HorizontalAlignment="Stretch"
                               VerticalAlignment="Stretch" AutoGenerateColumns="False" BorderThickness="1" CanUserResizeColumns="True"  
                               FontSize="12"  GridLinesVisibility="Both" Grid.Row="1" SelectionChanged="tlvPlanCuenta_SelectionChanged" FontStyle="Normal">
 
 
          <!--Child Definitions-->
          <telerik:RadTreeListView.ChildTableDefinitions>
              <telerik:TreeListViewTableDefinition ItemsSource="{Binding Items}" />
          </telerik:RadTreeListView.ChildTableDefinitions>
 
          <!--Context Menu-->
          <telerik:RadContextMenu.ContextMenu>
              <telerik:RadContextMenu x:Name="ContextMenuPlanCuenta"  Placement="MousePoint" ItemClick="ContextMenu_ItemClick"  Opened="OnMenuOpened">
                  <telerik:RadContextMenu.Items>
                      <telerik:RadMenuItem x:Name="ItemMenuAdd" Header="Añadir Cuenta"/>
                      <telerik:RadMenuItem x:Name="ItemMenuEdit" Header="Editar Cuenta" />
                      <telerik:RadMenuItem x:Name="ItemMemuDelete"  Header="Quitar Cuenta" />
                  </telerik:RadContextMenu.Items>
              </telerik:RadContextMenu>
          </telerik:RadContextMenu.ContextMenu>
 
           
          <!--Columnas-->
          <telerik:RadTreeListView.Columns>
              <telerik:GridViewDataColumn DataMemberBinding="{Binding Path=CuentaSinSeparador}" Header="Cuenta Contable" Width="500"  />
              <telerik:GridViewDataColumn DataMemberBinding="{Binding Path=CuentaConSeparador}" Header="Cuenta Contable" IsVisible="False" Width="500" />
              <telerik:GridViewDataColumn DataMemberBinding="{Binding Path=IsAnalitica}" Header="Analítica" Width="100" ShowFieldFilters="False"/>
              <telerik:GridViewDataColumn DataMemberBinding="{Binding Path=Rubro}" Header="Rubro"  Width="100" ShowFieldFilters="False"/>
              <telerik:GridViewDataColumn DataMemberBinding="{Binding Path=Nivel}" Header="Nivel" IsVisible="False"  Width="100" ShowFieldFilters="False"/>
          </telerik:RadTreeListView.Columns>
 
      </telerik:RadTreeListView>


and this is my cs code:

private void OnMenuOpened(object sender, RoutedEventArgs e)
{
    RadContextMenu menu = (RadContextMenu)sender;
    GridViewRow row = menu.GetClickedElement<GridViewRow>();
 
    if (row != null)
    {
        row.IsSelected = row.IsCurrent = true;
        var selectedAccount = (Account)row.Item;
        if (cuentaSeleccionada.Nivel == 1)
            menu.IsOpen = false;
    }
    else
    {
        menu.IsOpen = false;
    }
}
 
 
private void ContextMenu_ItemClick(object sender, RadRoutedEventArgs e)
{
    RadContextMenu menu = (RadContextMenu)sender;
    RadMenuItem clickedItem = e.OriginalSource as RadMenuItem;
    GridViewRow row = menu.GetClickedElement<GridViewRow>();
 
 
    var selectedAccount = (Account)row.Item;
 
    if (clickedItem != null)
    {
        switch (clickedItem.Name)
        {
            case "ItemMenuAdd":
                      //process 1
                break;
            case "ItemMenuEdit":
                      //process 2
                break;
            default:
                break;
        }
    }
}


Thanks.

ps. Sorry about my english, i speak spanish.

1 Answer, 1 is accepted

Sort by
0
Carlos
Top achievements
Rank 1
answered on 06 Jun 2013, 01:16 PM
no answer? :(
Tags
TreeListView
Asked by
Carlos
Top achievements
Rank 1
Answers by
Carlos
Top achievements
Rank 1
Share this question
or