您好,我一直在代码的这一部分中苦苦挣扎,在该部分中我需要实例化一个窗口,如果在搜索列表时在列表中找到该学生记录,它将打开另一个窗口,以便可以编辑。
例如,场景就是这样。我的名单上有一个叫:詹姆斯和罗杰的学生。 当我在文本框中输入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!!!" ;
}
}
}
答案 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!!!" ;
}
}
抱歉,这不是正确的编码,只是伪代码类型。 希望对您有帮助。