Почему я не могу видеть элементы списка, когда хочу их проверить?
Привет
У меня есть список, который обновляется относительно значений в выпадающем списке.Когда я хочу добавить флажки,чтобы я мог выбрать несколько элементов из списка.до того, как я добавил флажок в код, мои элементы списка отображались правильно.После того,как я добавил его, я получаю флажок, но я не вижу элемент, который я проверяю.В чем же тогда проблема?
Что я уже пробовал:
Это моя виртуальная машина:
public class RegisterTeacherViewModel : ViewModelBase, INotifyPropertyChanged { private List<Cours> courseName; public List<Cours> CourseName { get { return courseName; } set { if (courseName != value) courseName = value; NotifyOnPropertyChange("CourseName"); } } private String education; public String Education { get { return education; } set { if (education != value) { education = value; NotifyOnPropertyChange("Education"); } } } private bool Ischecked; public bool Checked { get { return Ischecked ; } set { Ischecked = value; NotifyOnPropertyChange("IsChecked"); } } public IEnumerable<Cours> GetByEducation() { using (var context = new DatabaseStudentsEntities1()) { var query = (from data in context.Courses select new { Education = data.education }).ToList().Select(c => new Cours { education = c.Education }).ToList(); return query.ToList(); } } public List<Cours> CreateCrazy() { using (DatabaseStudentsEntities1 db = new DatabaseStudentsEntities1()) { try { var query = (from data in db.Courses where data.education == "ICT Engineering" select new { CourseName = data.courseName }).ToList().Select(c => new Cours { courseName = c.CourseName }).ToList(); return query.ToList(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } return null; } public void SaveTeacher(object param) { SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\User\source\repos\VIAApp2Demo\VIAApp2Demo\DB\DatabaseStudents.mdf;Integrated Security=True;Connect Timeout=30"); try { if (conn.State == System.Data.ConnectionState.Closed) conn.Open(); String query = "INSERT INTO RegisterTeacher (SNTeacher,UserName,pwd,fullName,CourseName,education) VALUES(@SNTeacher,@UserName,@pwd,@fullName,@CourseName,@education)"; SqlCommand cmd = new SqlCommand(query, conn); cmd.CommandType =CommandType.Text; cmd.Parameters.AddWithValue("@UserName", UserName); cmd.Parameters.AddWithValue("@SNTeacher", SNTeacher); cmd.Parameters.AddWithValue("@pwd", pwd); cmd.Parameters.AddWithValue("@fullName", fullName); foreach(var item in CourseName) { if(item.Checked) { SqlParameter cours = cmd.Parameters.AddWithValue("@courseName", SqlDbType.NVarChar); cmd.Parameters["@courseName"].Value = courseName; if(cours.Value==null) { cours.Value = DBNull.Value; } } } cmd.Parameters.AddWithValue("@education", education); cmd.ExecuteNonQuery(); MessageBox.Show("Registration succesful!"); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conn.Close(); } }
Это и есть View.xaml.cs:
public partial class Login :Window { private LoginViewModel lg; public Login() { InitializeComponent(); lg = new LoginViewModel(); this.DataContext = lg; } private void Hyperlink_Click(object sender, RoutedEventArgs e) { Register reg = new Register(); reg.Show(); this.Close(); } } }
Это и есть представление.xaml:
<ListBox HorizontalAlignment="Left" Name="coursesList" SelectedItem="{Binding CourseName}" Height="240" Margin="418,13.2,0,0" Grid.Row="1" VerticalAlignment="Top" Width="225" Grid.RowSpan="2" ItemsSource="{Binding CourseName, Mode=TwoWay}" > <ListBox.ItemTemplate> <DataTemplate> <CheckBox x:Name="CheckBoxCourses" IsChecked="{Binding Checked,Mode=TwoWay}" ClickMode="Press" Content="" Margin="0"/> </DataTemplate> </ListBox.ItemTemplate> </ListBox> <Button Content="Show courses:" Name="ShowCourse" Command="{Binding Path=showCourse}" CommandParameter="{Binding ElementName=cbxCourses,Path=SelectedValue}" Click="Button_Click" HorizontalAlignment="Left" Margin="163,61.4,0,0" Grid.Row="2" VerticalAlignment="Top" Width="137" Height="35"/>