Skip to content

Commit 3c563c8

Browse files
committed
Fixed possible crash on selecting a preset or picker dropdown item.
1 parent 12aa515 commit 3c563c8

File tree

1 file changed

+23
-14
lines changed

1 file changed

+23
-14
lines changed

VidCoder/Controls/EnhancedListView.cs

+23-14
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
using System;
1+
using Microsoft.AnyContainer;
2+
using System;
23
using System.Collections.Generic;
34
using System.Linq;
45
using System.Text;
56
using System.Threading.Tasks;
67
using System.Windows.Controls;
8+
using VidCoder.Services;
79

810
namespace VidCoder.Controls;
911

@@ -15,25 +17,32 @@ protected override void OnSelectionChanged(SelectionChangedEventArgs e)
1517
{
1618
base.OnSelectionChanged(e);
1719

18-
bool isVirtualizing = VirtualizingPanel.GetIsVirtualizing(this);
19-
bool isMultiSelect = this.SelectionMode != SelectionMode.Single;
20-
21-
if (isVirtualizing && isMultiSelect)
20+
try
2221
{
23-
var newSelectedItems = this.SelectedItems.Cast<IListItemViewModel>().ToList();
22+
bool isVirtualizing = VirtualizingPanel.GetIsVirtualizing(this);
23+
bool isMultiSelect = this.SelectionMode != SelectionMode.Single;
2424

25-
foreach (var deselectedItem in this.selectedItems.Except(newSelectedItems))
25+
if (isVirtualizing && isMultiSelect)
2626
{
27-
deselectedItem.IsSelected = false;
28-
}
27+
var newSelectedItems = this.SelectedItems.Cast<IListItemViewModel>().ToList();
2928

30-
this.selectedItems.Clear();
31-
this.selectedItems.AddRange(newSelectedItems);
29+
foreach (var deselectedItem in this.selectedItems.Except(newSelectedItems).ToList())
30+
{
31+
deselectedItem.IsSelected = false;
32+
}
3233

33-
foreach (var newlySelectedItem in this.selectedItems)
34-
{
35-
newlySelectedItem.IsSelected = true;
34+
this.selectedItems.Clear();
35+
this.selectedItems.AddRange(newSelectedItems);
36+
37+
foreach (var newlySelectedItem in this.selectedItems)
38+
{
39+
newlySelectedItem.IsSelected = true;
40+
}
3641
}
3742
}
43+
catch (Exception exception)
44+
{
45+
StaticResolver.Resolve<IAppLogger>().Log("Could not select item: " + exception.ToString());
46+
}
3847
}
3948
}

0 commit comments

Comments
 (0)