2012-11-26 2 views
3

그래서 저는 WPF Window을 사용하여 주변을 둘러 보았고 해결책을 찾지 못했습니다.WPF간에 데이터 보내기

그래서 한 개의 WPF Window에서 다른 슬라이더로 값을 보내려고합니다. 동일한 프로젝트 내에서 두 개의 WPF Window을 사용하여 어떻게 수행해야합니까? 그리고 참조를 사용하여 동일한 솔루션 내부의 다른 프로젝트에서이 작업을 수행 할 수 있습니까?

저는 Windows 양식을 사용하여 쉽게 작업 할 수 있지만 WPF Window과는 작동하지 않습니다.

[편집]해야 할 일은 실제로 매우 기본입니다. 우리는 Startup이라는 메뉴 프로젝트를 언급해야 할 코드가 아직 포함되어 있지 않은 MainWindow.xaml과 함께 있습니다. 우리는 메뉴에서 2 개의 슬라이더를 사용할 수 있기를 원합니다. 1은 참여할 플레이어의 수를 설정하고 다른 하나는 게임이 지속되어야하는 시간을 설정하는 것입니다. 우리는 다음과 같이 플레이어의 양을 설정하여 게임 자체에서 이미이 문제를 해결했습니다 : 이것은 menuphase 하나가 있는지 확인하고 그에서 플레이어의 양을 얻을 것이다

private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) // Change move-army-strenght 
{ 
    movearmy = Convert.ToInt32(slider1.Value); 
    lblresult3.Content = "" + movearmy; 
    if (menuphase == 1) { players = Convert.ToInt32(slider1.Value); } 
} 

. 게임 내에서가 아니라 Menu에서이 값을 보내려고합니다.

+1

좀 더 정보를 제공해 주시기 바랍니다. Winforms 응용 프로그램에서 어떤 코드를 사용하고 있습니까? 몇 가지 코드를 볼 수 있다면 WPF에서 작동하지 않는 이유를 확인할 수 있습니다. –

+1

갈 길은 많습니다. 목표를 공유하고자한다면, 올바른 선택을 훨씬 쉽게 도와 드릴 수 있습니다. :) 편집 : 객관적인 의미로는 실제 유스 케이스를 의미합니다 – XamlZealot

+0

업데이트되었습니다! 텍스트에 [편집 됨]이 추가되었습니다 – JakobMillah

답변

2

요구 사항이 지나치게 많을 수도 있지만 양식, 창 등간에 데이터가 포함 된 메시지를 전송하는 확장 가능한 방법은 Mediator Design Pattern을 사용하는 것입니다. Marlon Grech의 우수 논문 및 샘플 프로젝트는 WPF Mediator입니다.

이 패턴은 메시지를 찾는 구독자가 너무 많지 않은 경우 다양한 메시지를 보내는 데 적합합니다.

-1

영업 이익은 편집에 쓴 :

[솔루션]

public partial class SelectionWindow : Window 
{ 
    WpfApplication1.GameWindow newForm2; 

    public SelectionWindow() 
    { InitializeComponent(); } 

    private void continue_Click(object sender, RoutedEventArgs e) 
    { 
     if (Convert.ToInt32(slider1.Value) > 1) 
     { 
      Worldmap.Properties.Settings.Default.value1 = Convert.ToInt32(slider1.Value); 
      Worldmap.Properties.Settings.Default.value2 = Convert.ToInt32(slider2.Value); 
      Worldmap.Properties.Settings.Default.Save(); 
      newForm2 = new WpfApplication1.GameWindow(); 
      newForm2.Show(); 
      Close(); 
     } 
    } 

    private void slider1_ValueChanged_1(object sender, RoutedPropertyChangedEventArgs<double> e) 
    { playerresult.Content = Convert.ToInt32(slider1.Value); } 

    private void slider2_ValueChanged_1(object sender, RoutedPropertyChangedEventArgs<double> e) 
    { timeresult.Content = Convert.ToInt32(slider2.Value); } 
} 
+0

([편집에 응답하고 커뮤니티 위키로 변환] (http://meta.stackoverflow.com/questions/267434/what-is-the-appropriate-action-when-the-answer-to-a-question -is-added-the-que)). –