Fix order of hotkey numbers

This commit is contained in:
VictoriousRaptor 2026-01-18 12:09:04 +08:00
parent 0364fafdf0
commit e9fb8c5330
3 changed files with 26 additions and 5 deletions

View file

@ -17,7 +17,17 @@ public class OpenResultHotkeyVisibilityConverter : IValueConverter
if (value is ListBoxItem listBoxItem
&& ItemsControl.ItemsControlFromItemContainer(listBoxItem) is ListBox listBox)
number = listBox.ItemContainerGenerator.IndexFromContainer(listBoxItem) + 1;
{
var dataItem = listBoxItem.DataContext;
if (dataItem != null)
{
var index = listBox.Items.IndexOf(dataItem);
if (index >= 0)
{
number = index + 1;
}
}
}
return number <= MaxVisibleHotkeys ? Visibility.Visible : Visibility.Collapsed;
}

View file

@ -1,4 +1,4 @@
using System;
using System;
using System.Globalization;
using System.Windows.Controls;
using System.Windows.Data;
@ -15,9 +15,20 @@ public class OrdinalConverter : IValueConverter
return 0;
}
var res = listBox.ItemContainerGenerator.IndexFromContainer(listBoxItem) + 1;
return res == 10 ? 0 : res; // 10th item => HOTKEY+0
var dataItem = listBoxItem.DataContext;
if (dataItem == null)
{
return 0;
}
var index = listBox.Items.IndexOf(dataItem);
if (index < 0)
{
return 0;
}
var res = index + 1;
return res == 10 ? 0 : res; // 10th item => HOTKEY+0
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) => throw new InvalidOperationException();

View file

@ -82,7 +82,7 @@
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}+{1}">
<Binding Mode="OneWay" Path="Settings.OpenResultModifiers" />
<Binding Converter="{StaticResource ResourceKey=OrdinalConverter}" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=ListBoxItem}" />
<Binding Converter="{StaticResource ResourceKey=OrdinalConverter}" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=ListBoxItem}"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>