我想将其移至我的App.Xaml.cs。有人可以给我一些建议我该怎么做吗?
<Application
x:Class="Test.App"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:converters="clr-namespace:Test">
<Application.Resources>
<converters:InverseBool x:Key="InverseBool" />
<converters:ToUpper x:Key="ToUpper" />
<converters:BoolToStringStateConverter x:Key="BoolToStringStateConverter" />
<converters:AddHashToNumberConverter x:Key="AddHashToNumberConverter" />
<converters:BoolToIntRowSpanConverter x:Key="BoolToIntRowSpanConverter" />
<converters:StringToTextAligmentConverter x:Key="StringToTextAligmentConverter" />
<converters:BoolToStringTextConverter x:Key="BoolToStringTextConverter" />
<converters:BoolToStringTextForDeckSourcesConverter x:Key="BoolToStringTextForDeckSourcesConverter" />
<converters:EpochSecondsToDateStringConverter x:Key="EpochSecondsToDateStringConverter" />
<converters:IntervalToDaysConverter x:Key="IntervalToDaysConverter" />
<converters:BoolToBackgroundColorConverter x:Key="BoolToBackgroundColorConverter" />
</Application.Resources>
</Application>
有没有一种方法可以将其添加到App.xaml.cs中,而不是将其存储在XAML文件中?
以下是删除App.xaml
,替换为App.cs
并将转换器资源添加到的步骤Application.Resources
。
资源字典Application.Resources
只是一个Dictionary<string, object>
我们可以传递任何键值对的字典。因此,我们将IValueConverter
使用类的名称和类的实例来传递每个值,例如Application.Current.Resources.Add(nameof(InverseBool), new InverseBool());
App.xaml
App.xaml
App.cs
App.cs
public class App : Application
{
public App()
{
Resources.Add(nameof(InverseBool), new InverseBool());
Resources.Add(nameof(ToUpper), new ToUpper());
Resources.Add(nameof(BoolToStringStateConverter), new BoolToStringStateConverter());
Resources.Add(nameof(AddHashToNumberConverter), new AddHashToNumberConverter());
Resources.Add(nameof(BoolToIntRowSpanConverter), new BoolToIntRowSpanConverter());
Resources.Add(nameof(StringToTextAligmentConverter), new StringToTextAligmentConverter());
Resources.Add(nameof(BoolToStringTextConverter), new BoolToStringTextConverter());
Resources.Add(nameof(BoolToStringTextForDeckSourcesConverter), new BoolToStringTextForDeckSourcesConverter());
Resources.Add(nameof(EpochSecondsToDateStringConverter), new EpochSecondsToDateStringConverter());
Resources.Add(nameof(IntervalToDaysConverter), new IntervalToDaysConverter());
Resources.Add(nameof(BoolToBackgroundColorConverter), new BoolToBackgroundColorConverter());
MainPage = ...
}
}