C# WPF访问MVVM项目中DataContext内的数据集。我该怎么做?
我有一种感觉,这将是我错过的一件愚蠢的事情。这是我第一次尝试创建SQL Server数据库并使用C和WPF连接到它 我有一个视图,DataContext是ViewModel。在ViewModel中,我有一个PatientData.Patients数据集 如果我将View DataContext设置为PatientData.Patient,网格中的字段将显示患者数据,但我的绑定控件Next/Prev/First/Last不起作用。如果将DataContext设置为ViewModel,则绑定控件可以工作,但数据集不能 我认为我需要将包含Patients绑定控件的DataContext的网格设置为PatientData.Patient,但我不知道如何设置 因此,我将ViewDataContext设置为ViewModel所有控件都工作,现在如何引用作为ViewModel一部分的PatientData.Patients数据集 这是病人的级别C# WPF访问MVVM项目中DataContext内的数据集。我该怎么做?,c#,wpf,mvvm,dataset,C#,Wpf,Mvvm,Dataset,我有一种感觉,这将是我错过的一件愚蠢的事情。这是我第一次尝试创建SQL Server数据库并使用C和WPF连接到它 我有一个视图,DataContext是ViewModel。在ViewModel中,我有一个PatientData.Patients数据集 如果我将View DataContext设置为PatientData.Patient,网格中的字段将显示患者数据,但我的绑定控件Next/Prev/First/Last不起作用。如果将DataContext设置为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]
那么,我是走错了路,还是走对了路,但我的代码被搞砸了
我在代码中有患者的数据集数据和可观察到的患者数据集。您能分享您的代码吗?我们处理数据库的方式是我们有一个查询数据的服务器,因此我们必须在结构中携带数据,并从数据库中设置和获取数据。我对数据集有这样的感觉,你只需要在它的结构中使用数据,而不必在外部结构中复制结构。这是否正确?您的viewmodel是PatientData还是PatientData是viewmodel的成员?PatientData只是在代码中。我不确定我是否完全理解您的意思,但您应该将视图的DataContext设置为viewmodel。对于网格,将其ItemsSource属性设置为Patients。这还不够吗?