也许这是微不足道的,但我没有想法......
最初我想为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()
....
到目前为止,我可以阅读它,类型转换字符串 - &gt; char失败了。 请注意,每当我将MyProperty的类型更改为字符串(例如)时,一切都会正常工作。
有人知道如何实现char属性,以便可以从Xaml设置它们吗?
使用 Windows Phone 7 ,也许这就是问题所在。 (有限SVL 3)
答案 0 :(得分:1)
我无法验证这是否有效,但你可以试一试。长格式xaml语法应该可以正常工作。
将以下内容添加到命名空间导入
xmlns:sys="clr-namespace:System;assembly=mscorlib"
然后以下内容应该有效
<MyPasswordBox MaxLength="3" Password="xxx">
<MyPasswordBox.MyProperty>
<sys:Char>c</sys:Char>
</MyPasswordBox.MyProperty>
</MyPasswordBox>
另一个解决方案是查看类型转换器以应用于您的属性,以便它将为您转换字符串。 Type Convereters and XAML