2012-11-09 5 views
0

나는이 코드편집 XAML 텍스트 상자되지는

box1.Text = ""; 
를 사용에서 XAML 텍스트 상자의 내용을 편집 할 수있는 MainPage 클래스가

그러나 다음 코드는 할 것입니다 다른 클래스에서 텍스트 상자를 편집하려고 작동하지

MainPage.box1.Text = ""; 

오류는 객체 참조는 비 정적 필드, 메서드 또는 속성 'class.MainPage.box1' 필요 나는 정적 기능을하고 새로운 MainPage가에 객체를 생성하는 등 모든 노력을했다 "입니다 다른 종들 하지만 아무 것도 작동하지 않았습니다.

+0

나는 당신의 제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

+0

Alex,이 WPF 또는 Silverlight입니까? – tempidope

답변

1

XAML 텍스트 상자가에서 MainPage.xaml에/.cs

텍스트 상자에 대한 귀하의 값 세터 일부에

클래스 X.

아래의 오류에 대한 이유는 box1이 정적이 아니며 MainPage의 인스턴스가 필요합니다.

MainPage.box1.Text = ""; 

하지만 어떤 인스턴스도 아닙니다. 현재 인스턴스가 필요합니다. 그래서 클래스 X의 메소드는 MainPage.xaml.cs 클래스의 "THIS"인스턴스를 받아서 box1 값을 변경해야합니다.

함수 호출 :

X xobj=new X(); 
xobj.ChangeboxValue(this); 

기능은 :

void ChangeboxValue(MainPage obj) 
{ 
obj.box1.Text="" 
} 
+0

고마워요! 매우 명확합니다. 그것 모두가 작동하는 방법에 대한 설명과 내가 지금 일하고있다 – Alex

+0

도움이 될 수있어서 다행 :) – tempidope

0

개체 인스턴스없이 MainPage 클래스의 정적 필드에 액세스하려고합니다.

이처럼 액세스 할 수 MainPage 클래스의 인스턴스가 필요합니다

MainPage myPage = new MainPage(); 
myPage.box1.Text = ""; 
+0

나는 이것을 시도, 응용 프로그램이 잘못된 크로스 스레드 액세스로 충돌합니다. Deployment.Current.Dispatcher.BeginInvoke() => 응용 프로그램에 크래시가 생기지 않지만 텍스트 상자가 편집되지 않습니다 – Alex

+0

샘플 코드에 컨텍스트를 추가하는 것이 도움이 될 것입니다. –