Ниже у меня есть метод для удаления записи из базы данных. Он отлично работает, пока он находится в том же диалоговом окне. Проблема в том, что я хочу иметь этот метод в другом окне, в диалоговом окне формы, а не в 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);
}
}