alf*_*alf 6 silverlight xaml decimal
我能够在xaml中声明一个整数或双精度值.但是,我无法添加小数值.它建立好,但后来我得到:
System.Windows.Markup.XamlParseException:找不到类型"Decimal".
这是xaml代码:
<UserControl.Resources>
<system:Int32 x:Key="AnIntValue">1000</system:Int32><!--Works!-->
<system:Double x:Key="ADoubleValue">1000.0</system:Double><!--Works!-->
<system:Decimal x:Key="ADecimalValue">1000.0</system:Decimal><!--Fails at runtime-->
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)
这是我如何声明系统命名空间:
xmlns:system="clr-namespace:System;assembly=mscorlib"
Run Code Online (Sandbox Code Playgroud)
编辑:解决方法: 正如史蒂文所提到的,通过代码隐藏添加资源似乎工作正常:
Resources.Add("ADecimalValue", new Decimal(1000.0));
Run Code Online (Sandbox Code Playgroud)
编辑:答案: 在WPF中做同样的事情似乎工作正常.所以我猜这是一个隐藏的银光限制.感谢Steven的这一发现.
我已经确认您的发现,即 Decimal 类型似乎不能作为 UserControl 的资源部分中的静态资源工作。不过,我确实看到了 StackOverflow 上讨论过的几个解决方法,并且我刚刚亲自验证过可以在 Silverlight 中使用 Decimal 类型:Access codebehind variable in XAML
解决方法包括:
第二种解决方法可以这样完成:
<sdk:Label Name="label1" Content="{Binding ElementName=root, Path=DecimalProperty}" />
Run Code Online (Sandbox Code Playgroud)
...根用户控件标签的定义如下(这个想法也来自上面的链接):
<UserControl x:Class="SilverlightDecimal.MainPage" x:Name="root" .... >
Run Code Online (Sandbox Code Playgroud)
这是在您的用户控件的代码隐藏中:
public decimal DecimalProperty
{
get
{
...
}
set
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3567 次 |
| 最近记录: |