Tag: validation

在UserControl中显示validation错误

我不确定为什么validation状态不会反映在我的用户控件中。 我抛出exception,但由于某种原因,控件没有显示validation状态…当我在我的MainPage上使用标准Textbox (现在在我的示例中注释掉)时,它显示错误状态,不知道为什么它不包裹的时候。 我已经减少了这一点,所以基本上它是一个包装TextBox的用户TextBox 。 我错过了什么? MyUserControl XAML: MyUserControl代码背后: public partial class MyUserControl : UserControl { public MyUserControl() { InitializeComponent(); this.Loaded += new RoutedEventHandler(MyUserControl_Loaded); this.TextBox.Unloaded += new RoutedEventHandler(TextBox_Unloaded); } public string Value { get { return (string)base.GetValue(ValueProperty); } set { base.SetValue(ValueProperty, value); } } public static DependencyProperty ValueProperty = DependencyProperty.Register( “Value”, typeof(string), typeof(MyUserControl), new PropertyMetadata(null)); […]

真的很简单的WPF表单数据validation – 如何?

我有这个非常简单的课程,我们称之为客户。 它看起来像这样: namespace TestValidation { class Customer { private string _name; public string Name { get { return _name; } set { _name = value; if (String.IsNullOrEmpty(value)) { throw new Exception(“Customer name is mandatory.”); } } } } } 现在,我已经创建了一个基本表单,用户可以在其中将客户添加到数据库中。 该表单包含简单的TextBox,绑定到Customer的Name属性,以及一个“Add”按钮。 XAML代码是: 从Name属性的setter中,您可以理解该名称对我来说是必需的,因此如果Name TextBox留空,我希望validation事件上升。 通过WPF的validation规则 – 一旦用户将焦点移出文本框,并且那里没有值 – 它应该将边框颜色更改为红色。 出于某种原因 – 这没有发生,我也不知道为什么。 我的过程有什么问题? 现在,我已经阅读了很多关于WPFvalidation的好文章(比如使用WPF执行复杂业务数据规则,WPF中的数据validation和Windows Presentation […]

我应该一直打电话给Page.IsValid吗?

我知道永远不要相信用户输入,因为不良输入可能会以某种方式损害应用程序的完整性,无论是偶然的还是有意的; 但是,即使页面上没有validation控件,也有调用Page.IsValid的情况(同样,我知道通过省略validation来信任用户输入的不良做法)? Page.IsValid是否执行任何其他类型的validation? 我查看了MSDN,文档似乎表明只有在页面上有validation控件或者调用了Page.Validate方法时,Page.IsValid才有效。 我的一个朋友建议我每次都在按钮点击处理程序中检查Page.IsValid,即使没有validation控件或显式的Page.Validate调用。

我如何知道是否因外键违规而抛出SQLexception?

我想告诉用户一条记录没有被删除,因为它有子数据,但我怎么能确定由于外键违规而引发了exception? 我看到有一个sqlexception类用于所有sqlexception。

当我的wpf绑定validation失败并且包含的​​面板不再可见时,如何摆脱红色矩形?

我有一种情况,我使用ExceptionValidationRule使用wpf数据绑定和validation。 解决方案的另一部分invovles折叠一些面板并显示其他面板。 如果设置了validationexception – 即UI在UI元素周围显示带有validation问题的红色边框,并且包含的​​面板已折叠,则仍会显示红色边框。 这显然不是意味着什么? 这有解决方法吗? 任何人都知道这是否是设计的? 提供最小代码示例(不是我的实际代码,但复制问题)。 创建一个新的WpfApplication(我称之为WpfDataBindingProblem)。 window1的xaml如下: The quick brown fox jumps over the lazy dog. Toggle panels window1的代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace WpfDataBindingProblem { public […]

validation方法被调用

使用Moq,我有一个非常奇怪的问题,即如果我设置的方法是公共的,模拟上的设置似乎只有效。 我不知道这是一个Moq bug还是我错了(Moq的新手)。 以下是测试用例: public class TestClass { public string Say() { return Hello(); } internal virtual string Hello() { return “”; } } [TestMethod] public void Say_WhenPublic_CallsHello() { Mock mock = new Mock(); mock.Setup(x => x.Hello()).Returns(“Hello World”); string result = mock.Object.Say(); mock.Verify(x => x.Hello(), Times.Exactly(1)); Assert.AreEqual(“Hello World”, result); } 该消息失败了: Say_WhenPublic_CallsHello失败:Moq.MockException:未在模拟上执行1次调用:x => x.Hello()在Moq.Mock.ThrowVerifyException(预期IProxyCall,表达式,时间)… 如果我像这样公开Hello方法,则测试通过。 […]

RegularExpressionValidator不在空白条目上触发

我想validation只包含数字的字符串。 简单validation? 我添加了RegularExpressionValidator,ValidationExpression =“/ d +”。 看起来没问题 – 但只输入空间时没有任何validation! 甚至许多空间都经过validation。 我不需要这是强制性的。 我可以修剪服务器,但不能正规表达做任何事情!

如何更改ASP.NET MVC中的int模型validation的ErrorMessage?

我有一个模型,其属性定义如下: [Required(ErrorMessage=”Please enter how many Stream Entries are displayed per page.”)] [Range(0,250, ErrorMessage=”Please enter a number between 0 and 250.”)] [Column] public int StreamEntriesPerPage { get; set; } 除非用户输入类似“100q”的内容,否则无效。 然后会显示一个相当丑陋的错误,上面写着“值’100q’对StreamEntriesPerPage无效。” 当输入不是int时,是否有可用于覆盖默认错误消息的属性?

与.net中的数据注释相反?

ASP.NET中[Compare(” “)]数据注释的反面/否定是什么? 即:两个属性必须包含不同的值。 public string UserName { get; set; } [Something[“UserName”]] public string Password { get; set; }

如何在ViewModel中处理Validation.Error而不是我后面的View代码?

我正在尝试让WPFvalidation在MVVM模式中工作。 在我的视图中,我可以validation像这样的TextBox,它由代码隐藏方法“HandleError”处理,工作正常: 但是,我想通过DelegateCommand在我的ViewModel中处理validation,但是当我使用以下代码尝试它时,我得到显式错误“ ‘{Binding HandleErrorCommand}’不是有效的事件处理程序方法名。只有实例方法生成的或代码隐藏的类是有效的。 “ 有没有解决方法,以便我们可以在MVVM模式中处理validation? 视图: 视图模型: #region DelegateCommand: HandleError private DelegateCommand handleErrorCommand; public ICommand HandleErrorCommand { get { if (handleErrorCommand == null) { handleErrorCommand = new DelegateCommand(HandleError, CanHandleError); } return handleErrorCommand; } } private void HandleError() { MessageBox.Show(“in view model”); } private bool CanHandleError() { return true; } #endregion