private void lv_NLM_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            foreach (DataRowView x in e.AddedItems)
            {
                LearnerFAM tmp = _learner.LearnerFAMList.Where(f => f.LearnFAMType == "NLM" && f.LearnFAMCode == int.Parse(x[0].ToString())).FirstOrDefault();
                if (tmp == null)
                {
                    if (_learner.NLM.Count < _maxNLMItem)
                    {
                        _learner.AddFAM(LearnerFAM.MultiOccurrenceFAMs.NLM, int.Parse(x[0].ToString()));
                    }
                    else
                    {
                        MessageBox.Show(String.Format("   You may only select {0} items.", _maxNLMItem.ToString())
                                        , "Max number of selectable items reached."
                                        , MessageBoxButton.OK
                                        , MessageBoxImage.Information
                                        , MessageBoxResult.OK);

                        x["IsSelected"] = Convert.ToBoolean(false);
                        OnPropertyChanged("NLMList");
                    }
                }
            }
            foreach (DataRowView x in e.RemovedItems)
            {
                Console.WriteLine(string.Format("Remove {0}", x[0].ToString()));
                foreach (int fam in _learner.NLM)
                {
                    if (fam.ToString() == x[0].ToString())
                    {
                        _learner.RemoveFAM(LearnerFAM.MultiOccurrenceFAMs.NLM, int.Parse(x[0].ToString()));
                        break;
                    }
                }
            }
        }