Alice
发表于 2016-11-28 11:25:19
CanYou1 发表于 2016-11-28 09:11
Alice,这个问题有进展了吗?
很抱歉没有找到可行的方案。
CanYou1
发表于 2016-11-28 12:25:00
Alice,我现在只需要做到一步就能解决,就是在切换tab时重新触发文本框验证就行,但我就是不知道用什么代码来触发验证,你有办法吗?
Alice
发表于 2016-11-28 16:33:34
CanYou1 发表于 2016-11-28 12:25
Alice,我现在只需要做到一步就能解决,就是在切换tab时重新触发文本框验证就行,但我就是不知道用什么代码 ...
验证是内部的逻辑触发的,我这里也拿不到。
CanYou1
发表于 2016-11-29 10:57:04
Alice 发表于 2016-11-28 16:33
验证是内部的逻辑触发的,我这里也拿不到。
目前我知道的触发验证时机都是用户在文本框内输入东西时,你有没有办法用代码模拟触发输入验证啊?
dexteryao
发表于 2016-11-29 19:20:46
试试获取焦点在丢失焦点?
Alice
发表于 2016-12-1 17:56:41
CanYou1 发表于 2016-11-28 12:25
Alice,我现在只需要做到一步就能解决,就是在切换tab时重新触发文本框验证就行,但我就是不知道用什么代码 ...
之前的思路一直是在控件的机制,想从控件本身入手。
其实这件事情和控件没有任何关系。
是MVVM中的数据源没有实现通知。
数据源需要做处理,代码参考:
public class Person : IDataErrorInfo, INotifyPropertyChanged
{
private string _name;
public string Id { get; set; }
public string Name
{
get { return _name; }
set
{
_name = value;
}
}
private string _province = string.Empty;
public string Province
{
get
{
return _province;
}
set
{
_province = value;
OnPropertyChanged("Province");
}
}
protected void OnPropertyChanged(String propertyName)
{
PropertyChangedEventArgs e = new PropertyChangedEventArgs(propertyName);
if (PropertyChanged != null)
{
PropertyChanged(this, e);
}
}
public string this
{
get
{
if (string.IsNullOrEmpty(Province))
return "省份 必填";
return string.Empty;
}
}
public string Error { get; private set; }
public event PropertyChangedEventHandler PropertyChanged;
}
CanYou1
发表于 2016-12-1 22:19:30
Alice 发表于 2016-12-1 17:56
之前的思路一直是在控件的机制,想从控件本身入手。
其实这件事情和控件没有任何关系。
是MVVM中的数据 ...
谢谢你!但是我按您说的做了后,还是老样子,Tab切回来后红框还是没有,帮忙看下是不是我哪里写得不对,谢谢!
Demo如下:
Alice
发表于 2016-12-2 10:44:36
CanYou1 发表于 2016-12-1 22:19
谢谢你!但是我按您说的做了后,还是老样子,Tab切回来后红框还是没有,帮忙看下是不是我哪里写得不对, ...
我看下给你回复。
Alice
发表于 2016-12-5 17:21:36
CanYou1 发表于 2016-12-1 22:19
谢谢你!但是我按您说的做了后,还是老样子,Tab切回来后红框还是没有,帮忙看下是不是我哪里写得不对, ...
你新发的Demo里的Model和以前的Demo不一样。
我重新在你demo的基础上改好了,Demo如下:
CanYou1
发表于 2016-12-5 17:25:19
Alice 发表于 2016-12-5 17:21
你新发的Demo里的Model和以前的Demo不一样。
我重新在你demo的基础上改好了,Demo如下:
嗯,新发的是按你说的加上了mvvm方式。我晚上看下效果,先谢谢了。