Contains для IQueryable и IEnumerable

Когда Contains вызывается для коллекции IEnumerable, используется реализация .NET Core. Когда Contains вызывается для объекта IQueryable, используется реализация базы данных.
Вызов Contains для IQueryable обычно предпочтительнее по соображениям производительности. При использовании IQueryable фильтрация выполняется сервером базы данных. Если сначала создается IEnumerable, все строки должны возвращаться с сервера базы данных.
Вызов ToUpper снижает производительность. Код ToUpper добавляет функцию в предложение WHERE TSQL-оператора SELECT. Добавленная функция не позволяет оптимизатору использовать индекс. Учитывая, что SQL устанавливается без учета регистра, рекомендуется не использовать вызов ToUpper, когда он не требуется.

Отсюда: https://docs.microsoft.com/ru-ru/aspnet/core/data/ef-rp/sort-filter-page?view=aspnetcore-3.1

Кнопка, как TextBlock

<Button Content="I'm a Button; click me">
    <Button.Template>
        <ControlTemplate TargetType="Button">
            <TextBlock Text="{TemplateBinding Content}" />
        </ControlTemplate>
    </Button.Template>
</Button>

https://stackoverflow.com/questions/7769979/wpf-button-no-border-no-background

И стрелочки до кучи

<Button FontFamily="Marlett" FontSize="20" Content="5"/>
<Button FontFamily="Marlett" FontSize="20" Content="6"/>

https://stackoverflow.com/questions/432384/wpf-create-buttons-with-up-and-down-arrows-using-standard-buttons

Листбокс и контент во всю ширину

Listbox Datatemplate that fills full width
https://social.msdn.microsoft.com/Forums/windowsapps/en-US/974fe937-c257-48b9-9a78-3196d964110d/listbox-datatemplate-that-fills-full-width?forum=wpdevelop

<ListBox x:Name="ListBox">  
    <ListBox.ItemContainerStyle> 
        <Style TargetType="ListBoxItem"> 
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
        </Style> 
    </ListBox.ItemContainerStyle> 
 
... 
 
</ListBox>