Converters updated as MarkupExtension

This commit is contained in:
2026-09-05 14:23:08 +03:00 Unverified
parent 71b163e268
commit b0d8bcd742
4 changed files with 12 additions and 10 deletions
@@ -3,11 +3,15 @@ using System.Collections.Generic;
using System.Text; using System.Text;
using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Data; using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Markup;
namespace WinWARP.Ui.Converters; namespace WinWARP.Ui.Converters;
public class ItemInvokedEventArgsConverter : IValueConverter [MarkupExtensionReturnType(ReturnType = typeof(IValueConverter))]
public class ItemInvokedEventArgsConverter : MarkupExtension, IValueConverter
{ {
protected override object ProvideValue() => this;
public object? Convert(object value, Type targetType, object parameter, string language) public object? Convert(object value, Type targetType, object parameter, string language)
{ {
if (value is NavigationViewItemInvokedEventArgs args) if (value is NavigationViewItemInvokedEventArgs args)
@@ -3,11 +3,15 @@ using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Text; using System.Text;
using Microsoft.UI.Xaml.Data; using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Markup;
namespace WinWARP.Ui.Converters; namespace WinWARP.Ui.Converters;
public class LanguageCodeToNameConverter : IValueConverter [MarkupExtensionReturnType(ReturnType = typeof(IValueConverter))]
public class LanguageCodeToNameConverter : MarkupExtension, IValueConverter
{ {
protected override object ProvideValue() => this;
public object Convert(object value, Type targetType, object parameter, string language) public object Convert(object value, Type targetType, object parameter, string language)
{ {
if (value is string languageCode && !string.IsNullOrWhiteSpace(languageCode)) if (value is string languageCode && !string.IsNullOrWhiteSpace(languageCode))
+1 -4
View File
@@ -20,9 +20,6 @@
</Window.SystemBackdrop> </Window.SystemBackdrop>
<Grid x:Name="RootGrid"> <Grid x:Name="RootGrid">
<Grid.Resources>
<conv:ItemInvokedEventArgsConverter x:Key="ItemInvokedEventArgsConverter" />
</Grid.Resources>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/>
<RowDefinition Height="*"/> <RowDefinition Height="*"/>
@@ -47,7 +44,7 @@
<i:EventTriggerBehavior EventName="ItemInvoked"> <i:EventTriggerBehavior EventName="ItemInvoked">
<i:InvokeCommandAction <i:InvokeCommandAction
Command="{x:Bind ViewModel.NavigateCommand}" Command="{x:Bind ViewModel.NavigateCommand}"
InputConverter="{StaticResource ItemInvokedEventArgsConverter}" /> InputConverter="{conv:ItemInvokedEventArgsConverter}" />
</i:EventTriggerBehavior> </i:EventTriggerBehavior>
</i:Interaction.Behaviors> </i:Interaction.Behaviors>
<NavigationView.MenuItems> <NavigationView.MenuItems>
+1 -4
View File
@@ -15,9 +15,6 @@
<ScrollView> <ScrollView>
<StackPanel Margin="24,14,24,24"> <StackPanel Margin="24,14,24,24">
<StackPanel.Resources>
<conv:LanguageCodeToNameConverter x:Key="LanguageCodeToNameConverter" />
</StackPanel.Resources>
<TextBlock u:Uids.Uid="SettingsPageTitle" Style="{StaticResource TitleTextBlockStyle}" Margin="0,0,0,10"/> <TextBlock u:Uids.Uid="SettingsPageTitle" Style="{StaticResource TitleTextBlockStyle}" Margin="0,0,0,10"/>
<!--App settings--> <!--App settings-->
@@ -67,7 +64,7 @@
<ComboBox ItemsSource="{x:Bind ViewModel.Languages}" SelectedItem="{x:Bind ViewModel.SelectedLanguage, Mode=TwoWay}"> <ComboBox ItemsSource="{x:Bind ViewModel.Languages}" SelectedItem="{x:Bind ViewModel.SelectedLanguage, Mode=TwoWay}">
<ComboBox.ItemTemplate> <ComboBox.ItemTemplate>
<DataTemplate x:DataType="x:String"> <DataTemplate x:DataType="x:String">
<TextBlock Text="{Binding Converter={StaticResource LanguageCodeToNameConverter}}"/> <TextBlock Text="{Binding Converter={conv:LanguageCodeToNameConverter}}"/>
</DataTemplate> </DataTemplate>
</ComboBox.ItemTemplate> </ComboBox.ItemTemplate>
</ComboBox> </ComboBox>