2010-03-26 3 views
1

버튼이있는 MainPage가 있다고 가정 해 봅니다. 나는 또 다른 페이지 (Page2)에 텍스트 상자가 있습니다. MainPage에서 버튼을 탐색하면서 Page2의 텍스트 상자에 간단한 텍스트 "TEXT"를 추가하고 싶습니다. 나는 실제로 사이트를 오픈하는 것에 문제가있다.Silverlight가 열리는 사이트

Page2 page2 = (Page2)Application.OpenedForms["Page2"]; page2.TextBox.Text = "TEXT";

어떻게 내가 그것을 실버 라이트에서 할 수있는 사항 : Windows Forms 응용 프로그램에서 그것은에 의해 해결된다? HELP ")

답변

1

나는 편리한 개발 환경을, 그래서하지 않는이되는 비 정확하지만,이 방법은 당신을 위해 작동과 나이 같은 일을 할 선호하는 방법입니다한다.

내 사과 당신이 당신의 낮은 수준의 제어에 속성으로 텍스트 상자에 대한 핸들을 주입한다 무엇을해야하는지 같은 소리, 이러한 이해와

<Page2> 
    <Textbox ID="MyTextbox" /> 
    <Control ID="Page1"> 
     <Button ID="MyButton" /> 
    </Control> 
</Page2> 

:

다음은 계층 구조에 대한 이해 의사 코드 마크 업을 사용하고

// Page1 code 
public TextBox TextboxToUpdateWhenYouPressTheButton { get; set; } 

Click() 
{ 
    // Perform Not Null Check and handle it somehow if it is null. 

    // Set the text. 
    TextboxToUpdateWhenYouPressTheButton.Text = "This is the text that goes into the textbox."; 
} 

이렇게하면 페이지 1을 만들 때마다 내부 컨트롤의 새 TextboxToUpdateWhenYouPressTheButton 속성에 텍스트 상자의 핸들을 전달하기 만하면됩니다. 궁극적으로 아이디어는 동일하게 유지되며, 지금은 직접이 속성을 통해서만 액세스합니다. 이렇게하면 텍스트 상자가 호출되는 것과 관계없이 여러 화면에서 컨트롤을 사용할 수 있습니다. 이렇게하면 페이지가 컨트롤을 "소비"하기 때문에 먼저이 텍스트 상자를 "등록"해야합니다.

+0

Page1에서 실제로 열리는 Page2는 보이지 않고 열립니다. 주된 문제점은 Page2가 이미로드되어 열렸습니다. – Rafal

+0

Page1과 Page2가 동시에 열려 있습니까? Page1에서 버튼을 클릭했지만 Page2가 이미 열려있는 경우 조금 혼란스러워합니다. – Jaxidian

+0

Page1은 내부에 단추가있는 UserControl입니다. Page2는 Page1의 부모입니다. 그러나 나는 Click 이벤트 마녀 패스를 사용하고 있기 때문에 Parent 속성을 호출 할 수 없다 : AddButtonControl_Click (객체 발신자, RoutedEventArgs e) – Rafal

관련 문제