ссылка на объект требуется для нестатического поля, метода или свойства
Хм, кажется, у меня проблема, в моем главном окне я пытаюсь сделать это:
public static readonly DependencyProperty StudentIDProperty = DependencyProperty.Register("StudentID", typeof(String), typeof(LoginWindow), new PropertyMetadata(OnStudentIDChanged));
public string StudentID
{
get { return (string)GetValue(StudentIDProperty); }
set { SetValue(StudentIDProperty, value); }
}
static void OnStudentIDChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
(d as LoginWindow).OnStudentIDChanged(e); //
}
На другом окне у меня есть это:
MainWindow.StudentID = (String)((Button)sender).Tag;
Но я получаю ошибку:
An object reference is required for the non-static field, method, or property 'WpfApplication4.MainWindow.StudentID.get'
Кто-нибудь знает, как я могу это исправить? Это работает для моих пользовательских элементов управления, но не для других окон?
Мое главное окно на самом деле называется MainWindow, так что я, возможно, запутался.
3 ответов:
Вам нужно установить StudentID на экземпляр класса MainWindow. Попробуйте
((MainWindow)Application.Current.MainWindow).StudentID = (String)((Button)sender).Tag;
Потому что
MainWindow- это имя класса, а не экземпляр MainWindow. Вам нужно что-то вроде:MainWindow mw = new MainWindow(); mw.StudentID = (String)((Button)sender).Tag;
Я пытался обновить
TextBoxвMainWindowизUserControlи получить ошибкуError 1: An object reference is required for the non-static field, method, or property 'WpfApplication1.MainWindow.textBox1'Я решил эту ошибку, написав следующее:
//MainWindow.textBox1.Text = ""; //Error 1 ((MainWindow)Application.Current.MainWindow).textBox1.Text = "";//This is OK!Это было предложено Ритисом I
Comments