-
Notifications
You must be signed in to change notification settings - Fork 778
Open
Description
Exceptions thrown in ActivateItemAsync, including all other methods called from the default implementation (TryDeactivateAsync, TryActivateAsync, NotifyOfPropertyChange, OnActivationProcessed) are silently discarded.
Repro:
public class MainViewModel : Conductor<Model>.Collection.OneActive
{
public MainViewModel()
{
Items.AddRange(new []
{
new Model(),
new Model(),
new Model(),
});
}
public override Task ActivateItemAsync(Model item, CancellationToken cancellationToken = new CancellationToken())
{
throw new Exception("please notice me");
}
}When selecting an item in a WPF ListBox, nothing happens. This is especially bad if there is additional code after the exception, which is simply not being executed without any indication.
I've found a similar issue #745 which is probably related.
The reason is that the setter of ActiveItem calls ActivateItemAsync without awaiting the task. This is a regression from 3.x. I realize awaiting in a setter is not possible and this might be a design issue:
| set => ActivateItemAsync(value, CancellationToken.None); |
darxis and mahara
Metadata
Metadata
Assignees
Labels
No labels