我在这个问题上苦苦挣扎了一周,我到处搜索,但自己找不到答案。我从这里的线索完成了一半,但无法完成。
我想做什么:我想将一两个字段绑定到我的组合框(一或两列组合)。这些组合字段的每个字段都有一个 ID,它是我的数据库中我的配置文件表中的一个 FK。DB是一个实体框架Model first[.edmx](自动生成代码)。我已经像这样连接到我的数据库:
数据访问:
#region Fields
MedManAgeDbEntities objDataContext;
readonly List<Patient_Profile> _patientsList;
readonly List<Renal_Function> _renalFunctionsList;
#endregion // Fields
/// <summary>
/// Creates a new repository of patients.
/// </summary>
public PatientProfile()
{
objDataContext = new MedManAgeDbEntities();
_patientsList = objDataContext.Patient_Profiles.ToList();
_renalFunctionsList = objDataContext.Renal_Functions.ToList();
}
#endregion // Creation
#region Public Interfaces
public ObservableCollection<Renal_Function> GetRenalFunction()
{
ObservableCollection<Renal_Function> temp = new ObservableCollection<Renal_Function>(objDataContext.Renal_Functions.ToList<Renal_Function>());
return temp;
}
视图模型:
#region Fields
RelayCommand _saveCommand;
readonly PatientProfile _patientsList = new PatientProfile();
readonly Patient_Profile tempPatient;
public ObservableCollection<Renal_Function> _renalFunction;
#endregion //Fields
#region Constructor
public patientCharacteristicViewModel()
{
tempPatient = new Patient_Profile();
_renalFunction = _patientsList.GetRenalFunction();
}
#endregion //Constructor
#region Getters and setters
public ObservableCollection<Renal_Function> RenalFunction
{
get
{
if (_renalFunction == null)
_renalFunction = _patientsList.GetRenalFunction();
return _renalFunction;
}
set
{
_renalFunction = value;
OnPropertyChanged("RenalFunction");
}
}
#endregion //Getters and setters
浏览:
<ComboBox HorizontalAlignment="Left" Height="26" Margin="14,0,-69,0" Width="234" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding RenalFunction/Level}"/>
每个 Renul 函数都有属性:ID、Level、Definition,其中 ID 为 int,其余为字符串。当我在组合框中单击其中一个级别时,我想返回该级别的 ID 并将其放入 Patient.Renul_Function_ID。我怎么做?
之后,如果我想将我的级别和信息绑定到两列组合中。我必须做什么?