也许这是一些微不足道的东西,但我没有想法...在Xaml中设置char属性
本来我想给PasswordBox添加一些功能。因为它是一个密封的类,所以必须复制原始属性,其中包括PasswordChar。看起来微不足道,但是当我开始在Xaml中设置PasswordChar时,我无法摆脱解析器异常。
最后我简单地定义一个新的属性
public char MyProperty {get; set; }
,并试图按照以下步骤设置在XAML:
<MyPasswordBox MaxLength="3" Password="xxx" MyProperty="c" />
我得到一个异常与调用堆栈看起来像
at MS.Internal.XcpImports.CheckHResult()
at MS.Internal.XcpImports.ConvertStringToTypedCValue()
at MS.Internal.SilverlightTypeConverter.ConvertFrom()
at MS.Internal.FrameworkCallbacks.ConvertValueToPropertyType()
....
at MS.Internal.FrameworkCallbacks.SetValueToProperty()
at MS.Internal.FrameworkCallbacks.SetPropertyAttribute()
....
at System.Windows.Application.LoadComponent()
....
据我所知,类型转换字符串 - > char失败。 请注意,无论何时我将MyProperty的类型更改为字符串(例如),一切正常。
有谁知道如何实现char属性,以便它们可以从Xaml中设置?
Working on Windows Phone 7,也许就是这个问题。 (有限SVL 3)
你可以为XAML绑定创建一个字符串属性,然后用一个自定义getter将char值暴露为其余代码的char值: – 2011-06-07 18:01:05
不知道你的意思。我可能会定义字符串类型的属性,以确保只使用1个字符的字符串。 – 2011-06-08 08:35:36
通过查看SVL代码,它显示它们使用特殊的依赖项属性类型。我的猜测是这个属性增加了string-> char转换到xml解析器。 (请参阅上面的callstack)世界上其他地方很可能不能在Xaml中使用char属性。 – 2011-06-08 08:40:08