2014-09-19 7 views
0

Ниже у меня есть метод для удаления записи из базы данных. Он отлично работает, пока он находится в том же диалоговом окне. Проблема в том, что я хочу иметь этот метод в другом окне, в диалоговом окне формы, а не в DataGrid. Как только я переведу его, он больше не работает. неКак я могу вызвать «выбранный элемент» DataGrid из другого класса?

public partial class ProjectsTable : Window 
{ 
    public ProjectsTable() 
    { 
     InitializeComponent(); 
    } 

    //populates a DataGrid called "ProjectData" on the "ProjectsTable.xaml" 
    private void Window_Loaded(Object sender, RoutedEventArgs e) 
    { 
     BillableProjectsDataContext project = new BillableProjectsDataContext(); 
     List<Project> projects = (from p in project.Projects 
            select p).ToList(); 
     ProjectData.ItemsSource = projects; 
    } 

    // deletes the selected project 
    private void btnDeleteProject_Click(object sender, RoutedEventArgs e) 
    { 
     //this is the most important part, it tells the method which record to delete 
     Project selected = ProjectData.SelectedItem as Project; 
     //calls another class called "Menu_SQL" and uses it's DeleteProject method 
     Menu_SQL.DeleteProject(selected); 
     Window_Loaded(null, null); 
    } 
} 

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

Конкретная ошибка: «Имя« ProjectData »не существует в текущем контексте».

Но он существует, это имя DataGrid.

public partial class DataForm : Window 
{ 
    public Project project; 
    public DataForm(Project project) 
    { 
     InitializeComponent(); 
     this.project = project; 
    } 
    public DataForm() 
    { 
     InitializeComponent(); 
    } 

    // deletes the selected project, the same exact method as before, just in another window 
    private void btnDeleteProject_Click(object sender, RoutedEventArgs e) 
    { 
     //this is the most important part, it tells the method which record to delete 
     // the problem is that this line will error because "The name 'ProjectData' does not exist in the current context" 
     Project selected = ProjectData.SelectedItem as Project; 
     Menu_SQL.DeleteProject(selected); 
    } 
} 

ответ

0

Может быть, вы можете добавить свойство в DataForm как

public DataGrid ProjectData { set; get; }

Вы можете установить его перед DataForm шоу.

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