これは私のXAMLコードです:このバインディングは元のコレクションをどのように変更しますか?
<Page.DataContext>
<vm:EditStudentDataViewModel x:Name="ViewModel" />
</Page.DataContext>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ScrollViewer>
<StackPanel Padding="20" Margin="20">
<TextBox Text="{x:Bind ViewModel.STU.FirstName,Mode=TwoWay}" Header="First Name" />
<TextBox Text="{x:Bind ViewModel.STU.LastName,Mode=TwoWay}" Header="Last Name" />
<TextBox Text="{x:Bind ViewModel.STU.RollNumber,Mode=TwoWay}" Header="Roll Number" />
<StackPanel Visibility="Visible" x:Name="buttons">
<Button Content="Next" Name="Addmore" Click="{x:Bind ViewModel.Addmore_Click}"/>
<Button Content="Done" Name="done" Click="{x:Bind ViewModel.done_Click}"/>
</StackPanel>
<StackPanel Visibility="Collapsed" x:Name="edit_button" >
<TextBox Header="Father Name" Text="{x:Bind ViewModel.STU.FatherName,Mode=TwoWay}"/>
<TextBox Header="Mother Name" Text="{x:Bind ViewModel.STU.MotherName,Mode=TwoWay}"/>
<TextBox Header="Father Contact No." Text="{x:Bind ViewModel.STU.FatherContactNumber,Mode=TwoWay}"/>
<TextBox Header="Permanent Address" Text="{x:Bind ViewModel.STU.PermanetAddress,Mode=TwoWay}"/>
<TextBox Header="Current Address" Text="{x:Bind ViewModel.STU.CurrentAddress,Mode=TwoWay}"/>
<TextBox Header="Email Address" Text="{x:Bind ViewModel.STU.EmailAddress,Mode=TwoWay}"/>
<Button Content="Done" Name="editbutton" Click="{x:Bind ViewModel.edit_student_data}"/>
</StackPanel>
</StackPanel>
</ScrollViewer>
</Grid>
そして、これはViewModelにで私のC#のコードです:
class SomeClassName
{
Student stu = Working.Selected_student();
public Student STU { get { return stu; } set { stu = value; } }
public void edit_student_data()
{
var hhjc = Teacher.all_the_classes_under_teacher;
Working.edit_student_data(stu);
Working.edit = false;
}
}
そして、これは他のクラスの生徒のオブジェクトを取得するために私の関数である。
public static Student Selected_student()
{
try
{
var stu = Teacher.all_the_classes_under_teacher.Single(x => x.classname == Selected_class_name).
studentList.Single(x => (x.FirstName + " " + x.LastName) == selected_student_name);
return stu;
}catch(Exception ee)
{
return new Student();
}
}
注:私はこの問題に関連する関連コードのみを掲載しました。
私のViewModelのステートメントStudent stu = Working.Selected_student();
選択された学生を取得します。 XAMLファイルでは、すべてのテキストボックス要素がパブリックプロパティSTUからテキストを取得します。 私の主な問題はとてもシンプルでありながら混乱しています。パブリックオブジェクトの変更、つまりSTUはプライベートオブジェクトstuを変更しますが、元のコレクションTeacher.all_the_classes_under_teacher
を変更するにはどうすればいいですか?私の元のコレクションにホバリングして変更を見ることができるように、私はWorking.edit_student_data(stu);
にブレークポイントを入れます。