Files
JackCraft.I18N/TestMvvm/Views/MainWindow.axaml
Jack e25d4639de feat(i18n): 支持绑定表达式作为国际化键值
- 将 I18NBinding 构造函数的 key 参数从 string 类型改为 object 类型
- 添加对 BindingBase 类型键值的支持,允许动态绑定国际化键
- 为 I18NExtension 添加多个构造函数重载以支持 BindingBase 键值
- 更新资源文件添加新的测试键值对
- 修改视图模型属性访问修饰符并添加测试属性
- 在主窗口视图中添加绑定表达式的国际化使用示例
2026-01-19 03:21:26 +08:00

31 lines
1.5 KiB
XML

<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:TestMvvm.ViewModels"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:i18N="clr-namespace:JackCraft.I18N;assembly=JackCraft.I18N"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="TestMvvm.Views.MainWindow"
x:DataType="vm:MainWindowViewModel"
Icon="/Assets/avalonia-logo.ico"
Title="TestMvvm">
<Design.DataContext>
<!-- This only sets the DataContext for the previewer in an IDE,
to set the actual DataContext for runtime, set the DataContext property in code (look at App.axaml.cs) -->
<vm:MainWindowViewModel />
</Design.DataContext>
<StackPanel>
<TextBlock Text="{Binding Test}" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Text="{i18N:I18N Test1, {Binding Test}}" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Text="{i18N:I18N {Binding Test2}}" HorizontalAlignment="Center" VerticalAlignment="Center" />
<Button Content="随机文本"
Command="{Binding RandomTextCommand}" />
<Button Content="切换中文"
Command="{Binding ChangeToChineseCommand}" />
<Button Content="切换默认"
Command="{Binding ChangeToDefaultCommand}" />
</StackPanel>
</Window>