我有一种感觉,这将是我想念的愚蠢的东西。这是我第一次尝试创建 SQL Server 数据库并使用 C# 和 WPF 连接到它。
我有一个 View 和DataContext是ViewModel。在ViewModel中, 我有一个PatientData.Patients数据集。
如果我将 View DataContext设置为PatientData.Patient,网格中的字段会显示患者数据,但我绑定的 CONTROLS(下一个/上一个/第一个/最后一个)不起作用。如果我将DataContext设置为ViewModel,我的绑定控件可以工作,但DATASET不能。
我相信我需要将包含患者绑定控件的DataContext的网格设置为PatientData.Patient但我不知道如何。
所以我将 View DataContext设置为ViewModel我的所有控件都可以工作,现在我如何引用作为ViewModel一部分的PatientData.Patients数据集?
这是患者的类别
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。