学生信息的数据绑定

时间:2018-08-07 03:51:07

标签: c# c++

您好,我一直在代码的这一部分中苦苦挣扎,在该部分中我需要实例化一个窗口,如果在搜索列表时在列表中找到该学生记录,它将打开另一个窗口,以便可以编辑。

例如,场景就是这样。我的名单上有一个叫:詹姆斯和罗杰的学生。 当我在文本框中输入Roger并进行搜索时,将弹出另一个窗口并显示Roger的所有详细信息。我怎样才能做到这一点?我尝试过,但是每次搜索Roger的名字时,都会弹出James的详细信息(因为这是列表中添加的第一个详细信息。) 我将等待答复。提前致谢。这是我的代码。

    public partial class EditStudent : Window
{

    List<Data> editstudentdata = new List<Data>();


    public EditStudent(List<Data>studentdata)
    {
        InitializeComponent();
        editstudentdata = studentdata;
        DataContext = studentdata;

    }
    void searchbtn(object sender, RoutedEventArgs e)
    {
        for ( int i = 0; i < editstudentdata.Count ; i++ )
        {
            if ( editstudentdata[i].idnum == searchidnumbox.Text)
            {

                ( What should I input here? )

            }
            if ( editstudentdata[i].idnum != searchidnumbox.Text)
            {
                resultblock.Text = "Data not found!!!" ;
            }
        }

    }

1 个答案:

答案 0 :(得分:1)

在Window上,创建Data类的属性,并在条件匹配时初始化窗口,并在调用Window.Show()之前初始化该属性。

这样的事情,

public partial class Window{
    Data student;
    Window(){
        // load properties of student to some textboxex, 
        //   so when this window will open your data is pre loaded.
    }
}

按照您的逻辑,您可以执行以下操作

       for ( int i = 0; i < editstudentdata.Count ; i++ )
        {
            if ( editstudentdata[i].idnum == searchidnumbox.Text)
            {
                    Window newWindow = new Window();
                    newWindow.student = editstudentdata[i];
                    this.Hide();
                    newWindow.show();
            }
            if ( editstudentdata[i].idnum != searchidnumbox.Text)
            {
                resultblock.Text = "Data not found!!!" ;
            }
        }

抱歉,这不是正确的编码,只是伪代码类型。 希望对您有帮助。