2015-11-20 2 views
0

Так я имею RadGridView с ContextMenu что имеет ItemClick событие с этим кодом:Получение значения из SelectedItem другого метода

ListData selectedItem = new ListData();  
public void GridContextMenu_ItemClick(object sender, Telerik.Windows.RadRoutedEventArgs e) 
    { 
     MenuItem item = (e.OriginalSource as RadMenuItem).DataContext as MenuItem; 
     switch (item.Text) 
     { 
      case "Edit": 
       selectedItem = (GridView.SelectedItem); 
       editMenu.Show(); 
       this.Close(); 
       break; 
      case "Delete": 
       this.GridView.Items.Remove(this.GridView.SelectedItem); 
       break; 
     } 
    } 

ListData что-то вроде этого:

public class ListData 
{ 
    public string Name { get; set; } 
    public string Type { get; set; } 
    ... 
    public string Something { get; set; } 
} 

Я знаю, что selectedItem внутри case «Edit» имеет одну строку данных из Name, Type, ..., Something из щелкнутой строки, когда я нажимаю «Edit» Menu. Но как я могу использовать selectedItem в другом методе в том же .xaml.cs или даже в другом файле?

+0

* «Но как я могу использовать selectedItem в другом методе в том же .xaml.cs или даже в другом файле?» * - Это довольно неопределенно, можете ли вы предоставить более подробную информацию о том, что именно вы пытаетесь достичь? ? –

+0

Если selectedItem был объявлен в начале класса, он должен быть доступен для других методов. Также 'ListData' - это не то же самое, что' AssetListData'. Убедитесь, что они написаны одинаково. – dev1998

+0

@ dev1998 извините за поздний ответ, да я редактирую его ListData. Я попытался объявить его в верхней части класса. но когда я вызываю его в другом классе, его значения пустые – Mirza

ответ

0

ОК, я не уверен, что это именно то, что вам нужно, но вот что сработало для меня.

В верхней части класса у меня есть это: public ListData selectedItem;

Внутри конструктора класса у меня есть это: selectedItem = new ListData(); , а также этот public ObservableCollection<ListData> OCLData;

Я создал DataGrid с именем dgMirza и установить ItemsSource = OCLData , OCLData - это коллекция объектов ListData.

Внутри события SelectedCellsChanged я помещал это: selectedItem = (ListData)dgMirza.SelectedItem;

я был в состоянии видеть данные в объекте SelectedItem даже в других методах.