也許這是一些微不足道的東西,但我沒有想法...在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