我正在尝试定义一个包含PasswordBox元素的设置页面。当我重新生成应用程序时,定义的文本资源不会正确显示。但是,如果我删除:
x:Uid="/resources/db_pwd"
定义(见下文(,然后它重建视图OK。如果我试图用定义的资源链接初始化视图,那么我会得到下面的错误。它看起来好像是PasswordBox的Text属性。。。但它不具有此属性。非常困惑!
资源
|Name | Value |
|-----------------------|---------------------------|
|db_pwd.Header |Password (default password)|
|db_pwd.PlaceholderText |Enter your password |
|db_pwd.Text |Password (default pwd) |
密码框
<PasswordBox x:Name="dbpwd" Width="300" x:Uid="/resources/db_pwd"
Header="Database Password"
PlaceholderText="Enter password"
PasswordChanged="PasswordBox_PasswordChanged"
HorizontalAlignment="Left" Margin="40,5,0,0" />
初始化视图时出错
Windows.UI.Xaml.Markup.XamlParseException
HResult=0x802B000A
Message=The text associated with this error code could not be found.
Unable to resolve property 'Text' while processing properties for Uid '/sql/db_pwd'. [Line: 38 Position: 68]
Source=Windows
StackTrace:
at Windows.UI.Xaml.Application.LoadComponent(Object component, Uri resourceLocator, ComponentResourceLocation componentResourceLocation)
at WeeWX.Views.SettingsPage.InitializeComponent() in D:DaveDocumentsVisual StudioWeeWXobjx86DebugViewsSettingsPage.g.i.cs:line 49
at WeeWX.Views.SettingsPage..ctor() in D:DaveDocumentsVisual StudioWeeWXViewsSettingsPage.xaml.cs:line 49
at WeeWX.Views.MainPage.SetSettings(Object sender, TappedRoutedEventArgs e) in D:DaveDocumentsVisual StudioWeeWXViewsMainPage.xaml.cs:line 350
This exception was originally thrown at this call stack:
[External Code]
WeeWX.Views.SettingsPage.SettingsPage() in SettingsPage.xaml.cs
WeeWX.Views.MainPage.SetSettings(object, Windows.UI.Xaml.Input.TappedRoutedEventArgs) in MainPage.xaml.cs
问题
- 为什么要找Text属性,Password Box没有这个属性
- 即使我在资源文件中添加了一个Text条目,它也会失败,如图所示。为什么
- 这个错误的根本原因是什么,以及修复方法是什么
回答您的问题:
1.为什么它在寻找Text属性,Password Box没有这个属性
2.即使如图所示在资源文件中添加Text条目,它也会失败。为什么?
PasswordBox
控件没有Text
属性。它具有Password
属性。
3.这个错误的根本原因是什么?修复方法是什么?
要修复此错误,您需要更改资源:
db_pwd.Text
->db_pwd.Password
最终解决了这个问题,但场景很重要:
- 最初的定义是
TextBox
,然后我将其更改为PasswordBox
- 这是Visual Studio(VS(仍在寻求解析
Text
属性(我认为是TextBox
与PasswordBox.Content
属性(的时候,因此我认为一定有一些缓存在进行 - 我尝试过构建/清理解决方案,但没有成功
- 然后我又做了#3,重新启动VS,仍然没有成功
- 然后我再次执行#3,更改了
db_pwd
资源的名称和对db_pswd
的引用,删除了db_pwd.Text
,重建了解决方案,然后。。。成功
不确定需要采取什么步骤来解决这类问题,但最重要的是VS正在进行一些非常愚蠢(过于乐观(的缓存!意见或建议?
PS:在将TextBox
更改为HyperlinkButton
之后,现在出现了类似的问题。通过类似的过程修复(步骤#5(!