XamlCompiler错误WMC0055:无法将文本值“ 10.0”分配给类型为“十进制”的属性“ xx”

梅尔达德·巴巴基(Mehrdad Babaki)

我想将静态资源添加到我的UWP XAML代码中,如下所示:

<Page
x:Class="Appnap.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Appnap"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Page.Resources>
    <local:MyCoffee CoffeeName="Esperso" Price="10.0" x:Key="okkk">
    </local:MyCoffee>
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <TextBlock Name="test" Text="{Binding CoffeeName,Source={StaticResource okkk}}" Margin="155,150,-155,-150" />   
</Grid>

我还添加了咖啡课,如下所示:

namespace Appnap
{
    public partial class MyCoffee
    {
        public string CoffeeName { get; set; }
        public decimal Price { get; set; }
    }
}

当我尝试编译代码时,出现错误,无法将值分配给价格(XamlCompiler错误WMC0055:无法将文本值“ 10.0”分配给类型为“十进制”的属性“价格”),我尝试了:10、10.0和10M,但没有任何变化。

周杰伦

正如XamlCompiler错误所说,这里的问题是XamlCompiler无法将文本值'10 .0'转换为Decimal

在UWP XAML中,它使用称为类型转换器的功能来执行转换,以将字符串值转换为该值的强类型版本。类型转换器只是一个具有一个功能的类,即将一个字符串值转换为一个强类型。通用Windows平台API中内置了其中的几种。有关更多信息,请参见:UWP-005-了解类型转换器

但是,Decimal内置的UWP API中没有Type Converter for XamlCompiler无法将您在XAML中设置的值解析为decimal在WPF中,我们可以使用TypeConverterclass为不受支持的类型创建自己的TypeConverter。但这在UWP中不受支持。

解决方法是,您可以MyCoffee在代码隐藏中初始化Binding在XAML中使用,如下所示:

在后台代码中,DataContext为页面或TextBlock设置

public MainPage()
{
    this.InitializeComponent();

    //Set DataContext for the page
    this.DataContext = new MyCoffee { CoffeeName = "Esperso", Price = 10M };
    //Or for the TextBlock
    //test.DataContext = new MyCoffee { CoffeeName = "Esperso", Price = 10M };
}

在XAML中,使用

<TextBlock Name="test" Margin="155,150,-155,-150" Text="{Binding CoffeeName}" /> 

这是我们用于绑定的最常用方法。

但是,如果你想使用MyCoffeeStaticResource,你可以设置Price的类型,double这是由现有的类型转换器的支持。但是,这可能会失去一些价格准确性,这取决于您的特定数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

XamlCompiler错误WMC0055:无法将文本值“帮助”分配给类型为“ IconElement”的属性“ Icon”

AWS错误-sudo:无法解析主机ip-10-0-xx-xx

SAS - 将十进制分配给浮点变量

React useState hooks错误:无法将类型“ xxx”的参数分配给类型“ SetStateAction <xx>”的参数

迅速3无法将类型XX的值转换为XX

使用三元运算符将null分配给十进制

无法分配给 int[10] 类型的成员

为十进制类型的Null抛出错误分配值

错误:无法将值“ $ event”分配给模板变量Angular 10

无法将十进制(4,2)转换为十进制(10,2)

将“ XX:XX:00”更改为“ 00:XX:XX”

% 不能分配给十进制类型 C#

AppleScript:无法将文件“ xx”设置为<< class fsrf >>类型

格式化后数字为10系列时,无法看到两个十进制值

将大十六进制数转换为十进制形式(以10为基数的形式)的算法

如何将“%符号”分配给十进制值-这样我就可以在Excel工作表中将其导出

类型错误:无法分配给字符串的只读属性“0”

类型错误:无法分配给打字稿中对象“[object Array]”的只读属性“0”

将 10e-3 转换为十进制

将类型分配给Maybe类型的嵌套类型的属性

角4,类型“ {xx,xx}”中缺少属性“ XX”

如何在Numpy中方便地将范围(10)分配给形状为(10, 1)的ndarray?

ksh88是否使用10#n语法将数字解释为十进制?

在ServiceHost指令中作为服务属性值提供的类型xx

TypeScript“数字”不可分配给0 | 10 | 即使数字为0,也为20

无法从10.XX.XX.28:6379连接到Redis:未知错误-从Spring Batch或Windows计算机访问时

类型为read的参数:typeof elementref无法分配给类型属性的参数,类型中缺少static

IntelliSense:无法将类型为“ void”的值分配给类型为“ double”的实体

无法将类型为int的值分配给类型为node的实体