mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Plugins UI - Use ItemsRepeater to fix page load time
This commit is contained in:
parent
e9566ca689
commit
6fd66ad447
@ -4,6 +4,7 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:settings="clr-namespace:Artemis.UI.Screens.Settings"
|
xmlns:settings="clr-namespace:Artemis.UI.Screens.Settings"
|
||||||
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
||||||
|
xmlns:plugins="clr-namespace:Artemis.UI.Screens.Plugins"
|
||||||
mc:Ignorable="d" d:DesignWidth="1200" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="1200" d:DesignHeight="450"
|
||||||
x:Class="Artemis.UI.Screens.Settings.PluginsTabView"
|
x:Class="Artemis.UI.Screens.Settings.PluginsTabView"
|
||||||
x:DataType="settings:PluginsTabViewModel">
|
x:DataType="settings:PluginsTabViewModel">
|
||||||
@ -28,7 +29,13 @@
|
|||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<ScrollViewer Grid.Row="1" Grid.Column="0" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" VerticalAlignment="Top">
|
<ScrollViewer Grid.Row="1" Grid.Column="0" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" VerticalAlignment="Top">
|
||||||
<ItemsControl Items="{CompiledBinding Plugins}" MaxWidth="900" VerticalAlignment="Center" />
|
<ItemsRepeater Items="{CompiledBinding Plugins}" MaxWidth="900" VerticalAlignment="Center">
|
||||||
|
<ItemsRepeater.ItemTemplate>
|
||||||
|
<DataTemplate x:DataType="plugins:PluginSettingsViewModel">
|
||||||
|
<ContentControl Content="{CompiledBinding}"/>
|
||||||
|
</DataTemplate>
|
||||||
|
</ItemsRepeater.ItemTemplate>
|
||||||
|
</ItemsRepeater>
|
||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
@ -41,7 +41,7 @@ namespace Artemis.UI.Screens.Settings
|
|||||||
plugins.Connect()
|
plugins.Connect()
|
||||||
.Filter(pluginFilter)
|
.Filter(pluginFilter)
|
||||||
.Sort(SortExpressionComparer<Plugin>.Ascending(p => p.Info.Name))
|
.Sort(SortExpressionComparer<Plugin>.Ascending(p => p.Info.Name))
|
||||||
.TransformAsync(p => Dispatcher.UIThread.InvokeAsync(() => settingsVmFactory.PluginSettingsViewModel(p), DispatcherPriority.Background))
|
.Transform(settingsVmFactory.PluginSettingsViewModel)
|
||||||
.Bind(out ReadOnlyObservableCollection<PluginSettingsViewModel> pluginViewModels)
|
.Bind(out ReadOnlyObservableCollection<PluginSettingsViewModel> pluginViewModels)
|
||||||
.Subscribe();
|
.Subscribe();
|
||||||
Plugins = pluginViewModels;
|
Plugins = pluginViewModels;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user