내 응용 프로그램에는 탐색 창에 두 페이지가 있습니다. 두 번째 인 -생성자를 사용하여 페이지에 매개 변수 전달
1 페이지 메인 페이지 및 세 (리본 메뉴 등) 위에 버튼 (프레임 내에서 이동하는 페이지의 후반부에) 프레임
2 페이지을 갖는다 페이지 1의 버튼을 클릭하면 프레임 내에서 지시되는 페이지입니다.
페이지 2 테스트 환경 용 TestServer1 .. TestServerN - 개발 용 -DevServer1 ... DevServern 및 Production -PrdServer1..PrdServerN 용 서버 목록을 표시합니다. Datagrid
이 있습니다.
이 버튼의이 cliked 때 현재 모든 서버가 데이터 그리드에 표시 얻을,하지만 내 관심사는 다음과 같은 순서로 표시하는 것입니다, 사용자가
tstbutton (테스트)를 클릭
- 그것은 2 페이지로 이동하여 테스트 시스템에 속한 서버 만 표시해야합니다.
devbutton (dev) - 2 페이지로 이동하여 개발 시스템에 속한 서버 만 표시해야합니다.
prdbutton (prd) - 프로덕션 시스템에 속한 서버 만 표시하고 2 페이지로 이동해야합니다.
나는 다음을 시도했지만, 생성자를 통해 매개 변수를 전달하여 한 서버에서만 얻을 수있었습니다.
Page1.cs
public partial class Page1 : Page
{
public Page1()
{
InitializeComponent();
}
private void PRD_Btn_Click(object sender, RoutedEventArgs e)
{
// Server x = new Server();
Page2 pg = new Page2();
this.NavigationService.Navigate(pg);
}
private void TST_Btn_Click(object sender, RoutedEventArgs e)
{
// this works, only if I pass one paramaterized constructor
Server s = new Server();
Page2 pg = new Page2(s);
this.NavigationService.Navigate(pg);
}
private void DEV_Btn_Click(object sender, RoutedEventArgs e)
{
// Server y = new Server();
Page2 pg = new Page2();
this.NavigationService.Navigate(pg);
}
}
Page2.cs
public partial class Page2: Page
{
public Page2()
{
InitializeComponent();
}
public Page2(Server s)
{
Db_Entities db = new Db_Entities();
string tst = "TEST";
var query1 = (from a in this.db.Servers
where a.ServerID.Contains(tst)
orderby a.ServerID
select a).ToList();
datagrid1.ItemsSource = query1.ToList();
}
}
위의 코드는 잘 작동합니다 ..하지만 난 다른 두 클릭 이벤트 년대 prdtst에 대한 코드의 주석을 해제하는 경우 및 devtst 버튼, 그리고 매개 변수 (서버 s) 함께 전달합니다. 거기에 모호성 및 오류 .. 어떻게 다른 두 서버에 대해 달성하기 위해? 어떤 아이디어? 나는이 오류를 얻을 2 회 유형 'FN_UI.Views - 나는
public Page2(Server x)
{
Db_Entities db = new Db_Entities();
string prd = "PRD";
var query1 = (from a in this.db.Servers
where a.ServerID.Contains(prd)
orderby a.ServerID
select a).ToList();
datagrid1.ItemsSource = query1.ToList();
}
public Page2(Server x)
{
Db_Entities db = new Db_Entities();
string dev = "DEV";
var query1 = (from a in this.db.Servers
where a.ServerID.Contains(dev)
orderby a.ServerID
select a).ToList();
datagrid1.ItemsSource = query1.ToList();
}
오류 1 내 코드에 이러한 추가 블록을 추가 할 때 나는 다음과 같은 한
편집
는 오류입니다 .Page2 '는 이미 동일한 매개 변수 유형으로'Page2 '라는 멤버를 정의합니다.
오류 2 -이 오류가 3 번 발생합니다. 'FN_UI.Views.Page2.Page2 (FN_UI.Server)'및 'FN_UI.Views.Page2.Page2 (FN_UI.UI).서버) '전체 코드에 대한
링크 - 만약 당신이 하나 개의 클래스에서 같은 매개 변수 유형 (들)과 세 개의 생성자를 가질 수 없습니다 https://gist.github.com/userXemY/c477c25c0c1641470c35
자세히 설명해 주시겠습니까? (모호한 메서드 재정의는 대개 컴파일러에서 염려되는 항목이므로 반드시 피해야합니다.) 그리고 키워드 클래스는 page2에 대해 누락되었습니다. – icbytes
확인 내 전체 코드를 붙여 넣을 것입니다 .. 그래야 아이디어를 얻을 수 있습니다 .. – user1221765
전체 참조를 위해 코드를 추가하여 친절하게이 링크를 확인하십시오. - https : //gist.github.com/userXemY/c477c25c0c1641470c35 – user1221765