Я новичок в Xamarin. Я пытаюсь понять Dynamic Resources и выхожу с очень простым проектом.
Я создал 3 динамических ресурса типа String в App.xaml, вот так:
<?xml version="1.0" encoding="utf-8" ?>
<Application
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyMobileApp.App">
<Application.Resources>
<ResourceDictionary>
<x:String x:Key="LangAbout">A</x:String>
<x:String x:Key="LangProfile">P</x:String>
<x:String x:Key="LangSettings">S</x:String>
</ResourceDictionary>
</Application.Resources>
</Application>
Это мой MenuPageTest.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage Title="Menu"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyMobileApp.Views.MenuPageTest">
<StackLayout VerticalOptions="FillAndExpand">
<ListView x:Name="ListViewMenu" HasUnevenRows="True">
<ListView.ItemTemplate><DataTemplate><ViewCell><Grid Padding="10">
<Label Text="{Binding Text}" FontSize="20"/>
</Grid></ViewCell></DataTemplate></ListView.ItemTemplate>
<ListView.ItemsSource><x:Array Type="{x:Type TextCell}">
<TextCell Text="{DynamicResource LangProfile}" Detail="0"/>
<TextCell Text="{DynamicResource LangSettings}" Detail="8"/>
<TextCell Text="{DynamicResource LangAbout}" Detail="9"/>
</x:Array></ListView.ItemsSource>
</ListView>
<Button Text="Change Resources" Clicked="Button_Clicked"/>
</StackLayout>
</ContentPage>
А вот мой код, MenuPageTest.xaml.cs:
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace MyMobileApp.Views
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class MenuPageTest : ContentPage
{
public MenuPageTest()
{
InitializeComponent();
}
private void Button_Clicked(object sender, System.EventArgs e)
{
Resources["LangAbout"] = "About";
Resources["LangProfile"] = "Profile";
Resources["LangSettings"] = "Settings";
}
}
}
Когда я впервые запускаю его, в списке правильно отображаются 3 элемента: «P», «S» и «A».
Когда я нажимаю кнопку, я ожидаю, что 3 элемента будут обновлены до «Профиль», «Настройки» и «О программе», но ничего не изменится.
Фактически, я вхожу в коды и обнаруживаю, что ресурсы действительно изменились, но это изменение не отражается на элементах в представлении списка.
Любая помощь будет оценена.