Ich habe eine WPF-Anwendung mit der Eigenschaft DisplayListType an einen RadioButton gebunden. Durch Auswahl des Optionsfelds wird die angezeigte Liste geändert, indem MakePatientList() aufgerufen wird, das asynchron ist. Wenn MakePatientList() beendet ist, aktualisiert es die angezeigte Liste von DxList aber ich sehe keinen Grund, in der ListTypes-Eigenschaft darauf zu warten. Allerdings muss aufgerufen werden, um die DxList-Eigenschaft festzulegen, wie unten gezeigt. (Hinweis: Visual Studio beschwert sich, wenn ich in dem Eigenschaftensetter ablegen, in dem MakePatientList() gestartet wird).Ändern einer angezeigten Liste asynchron von einem Radiobutton
Die erwarten in ListTypes ist eindeutig falsch. Wie kann das gemacht werden?
TIA (Visual Studio 2015 .NET 4.6.1)
private ListTypes displayListType;
public ListTypes DisplayListType
{
get { return displayListType; }
set
{
displayListType = value;
OnPropertyChanged("DisplayListType");
switch (value)
{
case ListTypes.ActiveDiagnosis:
await MakePatientList(); <---WRONG??
break;
.......
}
}
}
private async Task MakePatientList()
{
// consume the WCF service.
var result = await MedicalClient.GetActiveDxAsync(Encounter.PatientRecid, (DateTime)Encounter.Tencounter);
dxlist = result.Select(r =>
new ViewDx
{
Cdesc = r.Cdesc,
Code = r.Code,
Chronic = r.Chronic
})
.ToList();
DxList = new ObservableCollection<ViewDx>(dxlist);
}
private ObservableCollection<ViewDx> dxList;
public ObservableCollection<ViewDx> DxList
{
get { return dxList; }
set
{
if (dxList != value)
{
dxList = value;
OnPropertyChanged("DxList");
}
}
}