xaml中的类型转换
本文关键字:类型转换 xaml | 更新日期: 2023-09-27 18:21:38
我是WPF的新手,发现关于我认为是一个基本问题的信息量惊人地少,即对TextBlock中的文本使用整数。以下是我如何在app.xaml
:中定义我的资源
xmlns:sys="clr-namespace:System;assembly=mscorlib"
和
<Application.Resources>
<sys:Int32 x:Key="MyResourceName">-1</sys:Int32>
</Application.Resources>
这是正确定义和功能的,因为当我试图在一个简单的TextBlock对象中使用VS时,VS位于中:
<TextBlock Name="MyTextboxName" Text="{DynamicResource MyResourceName}" />
问题是,它生成了一个错误,当然,它解释了默认情况下无法将整数转换为字符串。通常,我会在知道自己在打字之前进行转换,但我不知道如何在xaml中进行转换。我考虑过绑定,但它似乎没有那么关注用户定义的变量,而且会更麻烦,所以我研究了转换器。在xaml中,我也很少发现将整数转换为字符串的方法。如果没有解决方案,我可以简单地将变量设置为字符串,并将它们转换为整数或浮点值,仅用于转换,然后将它们转换回,但这将是一个主要的(也是混乱的)痛苦。
编辑:明确地说,我真的在问两个问题:
- 仅在Xaml中可以进行类型转换吗
- 是否有默认的转换器用于将一种基元类型转换为另一种
框架中已经有一个TypeConverter可以将int转换为字符串,这里的问题是在使用StaticResource
或DynamicResource
时没有应用它。
你只需要绑定到你的资源:
<TextBlock Name="MyTextboxName" Text="{Binding Source={StaticResource MyResourceName}}" />
但是您不能使用DynamicResource。
您需要编写一个转换器并使用它进行转换。然后将其添加为资源。
TypeConverters和XAML