我正在创建一个我要验证文本框的项目,因此请使用prism并实现如下所示的示例
http://msdn.microsoft.com/en-us/library/windows/apps/xx130660.aspx
我已经实现的所有工作都很好但是当我更改页面的xaml中的代码时,却找不到我已经实现的类等。
例如
<prism:VisualStateAwarePage
xmlns:prism="using:Microsoft.Practices.Prism.StoreApps"
xmlns:vm="using:PrismExample.ViewModels"
xmlns:Behaviors="using:PrismExample.Behaviors"
x:Class="PrismExample.Views.UserInfoView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006">
<Page.DataContext>
**<vm:UserInfoViewModel/>**
</Page.DataContext>
<TextBox x:Name="FirstNameValue" Grid.Row="2"
Text="{Binding UserInfo.FirstName, Mode=TwoWay}">
<interactivity:Interaction.Behaviors>
<!--<Behaviors:HighlightFormFieldOnErrors PropertyErrors="{Binding UserInfo.Errors[FirstName]}">-->
**<quickstartBehaviors:HighlightFormFieldOnErrors** PropertyErrors="{Binding UserInfo.Errors[FirstName]}" />
</interactivity:Interaction.Behaviors>
</prism:VisualStateAwarePage>
现在,粗体文本给出了它在命名空间中不存在的错误。 任何人都可以帮助我解决这个问题。我怎么能摆脱这个。
答案 0 :(得分:0)
你有:
<Page.DataContext>
**<vm:UserInfoViewModel/>**
</Page.DataContext>
应该是:
<prism:VisualStateAwarePage.DataContext>
<vm:UserInfoViewModel/>
</prism:VisualStateAwarePage.DataContext>
答案 1 :(得分:0)
在您的代码中,您引用了quickstartBehaviors
,但您的页面中只定义了Behaviors
的XMLNS。您应该查看定义HighlightFormFieldOnErrors
的位置。
让我们假装有效。但是,Noor,我不知道该怎么说。控件的验证与视图模型中的验证不同。我的意思是,我认为可能有更好的方式供您考虑。如果您有兴趣,请阅读:http://blog.jerrynixon.com/2014/07/lets-code-handling-validation-in-your.html
祝你好运!