2016-12-03 1 views
1

개체 목록이 있고 WPF에서 '이전'및 '다음'단추를 사용하여 개체의 속성을 반복하고 싶습니다.
예를 들어 객체의 속성을 반복 할 때 '이전'버튼을 클릭하면 객체 앞에있는 객체의 속성이 'next'버튼을 통해 반복되고 있습니다.목록의 개체 속성을 반복하는 방법은 무엇입니까?

학생 목록에 studentList에 저장된 학생 개체의 성과 이름 및 수를 포함하는 학생 클래스가 있다면 어떻게해야합니까?
내가

class Student 
{ 
    private string firstName; 

    public string FirstName 
    { 
     get { return firstName; } 
     set { firstName = value; } 
    } 
    private string lastName; 

    public string LastName 
    { 
     get { return lastName; } 
     set { lastName = value; } 
    } 
    private string city; 

    public string City 
    { 
     get { return city; } 
     set { city = value; } 
    } 

} 

private void btnCreateStudent_Click(object sender, RoutedEventArgs e) 
    { 
     Student student1 = new Student(); 
     student1.FirstName = txtFirstName.Text; 
     student1.LastName = txtLastName.Text; 
     student1.City = txtCity.Text; 

     studentList.Add(student1); 

     MessageBox.Show("Student Created"); 

     txtFirstName.Clear(); 
     txtLastName.Clear(); 
     txtCity.Clear(); 
    } 

private void btnPrevious_Click(object sender, RoutedEventArgs e) 
    { 
     // need implementation code 
    } 
private void btnNext_Click(object sender, RoutedEventArgs e) 
    { 
     // need implementation code 
    } 

덕분에 당신이 어떤 바인딩 재료를 사용하지 않는 가정

+2

이러한 유형의 질문은 더 많은 코드와 덜 추상적 인 설명으로 더 잘 작동합니다. –

+0

질문에는 질문을 읽는 것으로 가정 할 수있는 기본 코딩이 포함되어 있습니다 ... '다음'및 '이전'버튼의 click 이벤트에 대한 eventHandler 메소드가 필요합니다. –

+1

두 버튼의 Click 이벤트에 대한 이벤트 핸들러 메소드에는 다음이 포함됩니다 해결해야 할 문제를 상상할 수있는 기본 코딩. –

답변

0

'다음'과 '이전'버튼에 대한 이벤트 핸들러 메소드의 구현에 대한 유일한 걱정, 당신은 도우미 메서드를 작성해야하는 그런 다음 및 이전 버튼 만 01에서 각 객체를 인출 할 필요

private void bindStudent(Student student) { 
    if (student != null) { 
     txtFirstName.Text = student.FirstName; 
     txtLastName.Text = student.LastName; 
     txtCity.Text = student.City; 
    } 
    else { // Just a fail-safe. 
     txtFirstName.Clear(); 
     txtLastName.Clear(); 
     txtCity.Clear(); 
    } 
} 

을 : 현재 선택된 Student 객체의 값과 UI 채워을 입력하고 메소드를 호출하십시오. 한 가지해야 할 일은 "다음"및 "이전"개체를 가져 오기 위해 현재 목록에서 어떤 개체를 선택했는지 기억하는 것입니다.

private int curSelectionIndex = -1; 

private void btnPrevious_Click(object sender, RoutedEventArgs e) 
{ 
    if (curSelectionIndex - 1 >= 0) 
    { 
     curSelectionIndex--; 
     bindStudent(studentList[curSelectionIndex]); 
    } 
} 

private void btnNext_Click(object sender, RoutedEventArgs e) 
{ 
    if (curSelectionIndex + 1 < studentList.Count) 
    { 
     curSelectionIndex++; 
     bindStudent(studentList[curSelectionIndex]); 
    } 
} 

귀하의 질문은 당신이 새로운 학생을 만든 후 UI에 수행 할 작업을 지정하지 않았다, 그래서 나는 그 선택을 갱신에 관해서는 아무것도하지 않았다.

+0

그것은 실제로 내가 어떤 개체가 현재 표시됩니다 트랙을 유지하는 방법을 알아낼 수 없습니다 근무 감사합니다 Logged –

관련 문제