3
A
回答
7
ErrorProvider是一个Winforms控件。在WPF中没有等价物。但是如果你创建一个win表单项目,你仍然可以在visual studio 2008中找到。
您可能想看看error validation in WPF上的这篇文章。它对如何处理验证提出了一些有用的建议和想法。
4
.NET 3.5增加了对IDataErrorInfo的WPF支持:Data validation in .NET 3.5。
0
首先请原谅我评论这样一个老的讨论,但是这可能会帮助,因为我有完全一样的问题,西蒙的链接帮助我“的东西开始”
我可以测试西蒙P.Stevens教程,但老实说我不喜欢那么多:
- 使用responseTemplate使得响应显示错误时响应较慢。
- 只有当规则对于同一类总是相同的时候(在我的情况下,我有一些数量,有时可能是负数,有时不是)。
- 对于国际化应用程序(在我的情况下),外部库无法访问翻译的资源,因此我无法设置适当的消息。
我认为使用MVVM是很好的适合于管理任何情况:
设置我的文本框,一个BorderBrush和工具提示,关于我的条件,我会隐藏/显示工具提示和彩色边框:
XAML:
<TextBox x:Name="tbName" Grid.Column="1" Grid.Row="0" Margin="3" LostFocus="tbName_LostFocus" BorderBrush="{Binding BordertbName}"
Text="{Binding MonRepere.Nom}" ToolTipService.ToolTip="{Binding ErrorName}" ToolTipService.IsEnabled="{Binding ToolTipNameEnable}"/>
代码的背后(引发LostFocus =保留为谁用于WindowsForm):
private void tbName_LostFocus(object sender, RoutedEventArgs e)
{
if(tbName.Text=="")
{
this.mv.ErrorName = Properties.Resources.ErrorEmpty;
}
else
{
mv.ErrorName = "";
}
}
然后视图模型:
private string errorName;
public string ErrorName
{
get { return errorName; }
set
{
errorName = value;
if (value == "")
{
ToolTipNameEnable = false;
BordertbName = Brushes.Gray;
}
else
{
ToolTipNameEnable = true;
BordertbName = Brushes.Red;
}
this.NotifyPropertyChanged("ErrorName");
}
}
private Brush bordertbName;
public Brush BordertbName
{
get { return bordertbName; }
set
{
bordertbName = value;
this.NotifyPropertyChanged("BordertbName");
}
}
private bool toolTipNameEnable;
public bool ToolTipNameEnable
{
get { return toolTipNameEnable; }
set
{
toolTipNameEnable = value;
this.NotifyPropertyChanged("ToolTipNameEnable");
}
}
时规则是关于具体的情况就非常有用。
相关问题
- 1. wpf文本框错误提供程序不工作
- 2. AngularJS:未知的提供程序错误
- 3. Angular2上的Jsonp提供程序错误
- 4. 枚举错误提供程序中的错误
- 5. EFCore 1.1 Scaffold-DbContext提供程序错误
- 6. 错误:没有配置提供程序
- 7. HibernatePersistence提供程序发生错误
- 8. sql compact会员提供程序错误
- 9. 用户提供程序错误symfony
- 10. Redux&React-router:提供程序错误
- 11. 错误:没有提供程序ValidateService
- 12. 错误:没有提供程序AuthInterceptor
- 13. 错误提供程序c#winforms
- 14. nativescript和angular2 - 无提供程序错误
- 15. 蒸气MongoDB提供程序错误
- 16. 错误:没有提供程序组件
- 17. WPF的扩展提供程序
- 18. Sql Server OLEDB提供程序错误。提供商耗尽内存错误
- 19. 提供程序错误'80004005'未指定的错误
- 20. Microsoft OLE DB提供程序的ODBC驱动程序错误“80040e07”
- 21. Sqlite数据提供程序.net错误:不同的SQL响应命令提示符与SQLite ADO.NET提供程序
- 22. AppCompatActivity提供错误
- 23. xcode提供错误
- 24. 没有Http的提供商!错误:没有提供程序的Http!在注入错误
- 25. 错误:在Ionic2中没有为MediaCapture提供程序
- 26. 错误:$ injector:unpr未知的提供程序未知的提供程序:TasksProvider < - 任务< - IndexController
- 27. DirPagination未知的提供程序错误[缩小的问题]
- 28. (提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)
- 29. 在程序中提供JavaCompiler
- 30. 报警声明提供错误的UWP应用程序?