1

我目前正在使用 IValueConverter 将布尔值转换为是/否文本以显示在 RadGridView 中。

Public Function Convert(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert
            Return If(CBool(value), "Yes", "No")
        End Function

如您所见,这是我当前的实现,我想知道如何使用本地化并以其他语言显示是/否?

有人可以帮我解决这个问题吗?

4

2 回答 2

1

在 WPF UI 中实现本地化的方法有很多。

使用 Microsoft 的本地化程序

或使用资源文件方法。有相当多的实现使得本地化方式比微软的方法更容易,微软的方法有一些开销,比如将 Uid 提供给所有要本地化和排序的元素。

提供资源文件本地化的此类插件之一是Infralution WPF Localization

这似乎运作良好(作者积极回复代码项目中的错误,更新及时且对MVVM友好)。它的附加示例演示了与您的示例类似的示例,其中作者展示了如何在运行时根据它可以接受的一组目标值来本地化视图中的绑定值。

我建议您阅读代码项目文章,Mess about with the随附示例,您应该对如何实现这一点有一个更好的想法。

于 2013-03-04T11:14:12.213 回答
0

您可以完全跳过 IValueConverter 并使用触发器,这样您就可以正常本地化文本这是一个使用文本框实现此目的的示例:

    <TextBox.Style>
        <Style TargetType="TextBox">
            <Style.Triggers>
                <DataTrigger Binding="{Binding i}" Value="True">
                     <Setter Property="Text" Value="Yes"/>
                 </DataTrigger>
                 <DataTrigger Binding="{Binding i}" Value="False">
                     <Setter Property="Text" Value="No"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>

假设 i 是您要绑定的布尔值。

于 2013-03-04T13:58:54.143 回答