我有一种感觉,这将是我想念的愚蠢。这是我第一次尝试创建SQL Server数据库并使用C#和WPF连接到它。
我有一个View, DataContext 是 ViewModel 。在 ViewModel 中,我有 PatientData.Patients 的数据集。
如果我将View DataContext 设置为 PatientData.Patient ,则网格中的字段会显示患者数据,但接着显示我的绑定CONTROLS(下一个/上一个/第一个/最后一个) ) 不工作。如果我将 DataContext 设置为 ViewModel ,我的绑定控件可以正常工作,但 DATASET 却没有。
我相信我需要将包含患者绑定控件的 DataContext 的网格设置为 PatientData.Patient 但是我无法弄清楚如何。
所以我将View DataContext 设置为 ViewModel 我的所有控件都有效,现在我如何引用 PatientData.Patients 数据集 ViewModel 的一部分?
这是病人的班级
public class PatientRecord
{
public int PatientID { get; set; }
public string LastName { get; set; }
public string LastFirstName { get; set; }
public string FirstName { get; set; }
public string FirstLastName { get; set; }
public string Addr1 { get; set; }
public string Addr2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
public string Phone { get; set; }
public DateTime DOB { get; set; }
public string MaritalStatus { get; set; }
public string Sex { get; set; }
public string Race { get; set; }
public bool HealthIns { get; set; }
public bool OutsidePCP { get; set; }
public string PrimaryCareProvider { get; set; }
public object Modified { get; set; }
}
我有一个数据集,我从称为患者的数据中提取匹配患者记录的数据,这样我就可以将数据读入记录中。在患者编辑屏幕的构造函数中,我通过患者记录了当前选择的患者。我希望能够编辑当前记录,然后转移到其他记录
public PatientMaintenanceViewModel( ObservableCollection<PatientRecord> patients, PatientRecord selectedPatient )
{
try
{
Patients = patients;
SelectedPatient = selectedPatient;
taPatients.Fill( dsPatient.Patients );
}
catch ( Exception ex )
{
MessageBox.Show( ex.Message, "PatientMaintenanceViewModel" );
var errors = dsPatient.Patients.GetErrors();
}
taManager.PatientsTableAdapter = taPatients;
// DataContext = PatientData.Patient;
View = (CollectionView)CollectionViewSource.GetDefaultView( dsPatient.Patients );
MaritalStatuses = _patientRepo.GetMaritalStatuses();
Races = _patientRepo.GetRaces();
}
![患者编辑屏幕] [1]
所以我接近这个错误,或者我走的是正确的道路,但我的代码搞砸了?
我有患者的数据集数据和我在代码中随身携带的ObservableCollection患者。