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:
Metadata
Metadata
Assignees
Labels
No labels