Использование класса, инициированного в одном методе в другом методе - PullRequest
2 голосов
/ 20 мая 2010

У меня есть приложение C # WPF, которое каждый раз, когда пользователь открывает новый файл, содержимое отображается в сетке данных.

public partial class MainWindow : Window
{
     public TabControl tc = new TabControl();

     public MainWindow()
     {
         InitializeComponents();
     }

     private FromFile_click(object sender, RoutedEventArgs e)
     {
         //gets information from file and then...

         if (numberOfFiles == 0)
         {
             masterGrid.Children.Add(tc);
         }
         TabItem ti = new TabItem();
         tc.Items.Add(ti);

         DataGrid dg = new DataGrid();
         ti.Content = dg;

         dg.Name = "Grid"+ ++numberOfFiles;

         dg.ItemSource = data;
     }

     private otherMethod(object sender, RoutedEventArgs e)
     {

     }
}

Мой вопрос, как мне использовать данные в dg в методе "otherMethod"? Кроме того, возможно ли изменить родителя dg из метода "otherMethod"?

Ответы [ 3 ]

4 голосов
/ 20 мая 2010

Предполагая, что вы не вызываете otherMethod в FromFile_Click, вам нужно сделать его переменной экземпляра - как ваш TabControl, за исключением, надеюсь, не публичного. Я предполагаю, что otherMethod на самом деле предназначен для обработки какого-либо события, а не вызывается напрямую.

Теперь предполагается, что вы хотите один DataGrid на экземпляр MainWindow, связанный с этим окном. Если это не так, вам нужно предоставить больше информации.

0 голосов
/ 20 мая 2010

установить DataGrid dg как свойство вместо объявления внутри FromFile_click.

Таким образом, когда вы назначаете "dg", он будет работать любым другим методом (применяются некоторые ограничения)

0 голосов
/ 20 мая 2010

Вы должны передать его как параметр другому методу otherMethod или сделать его переменной-членом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...