我需要開發一個應用程序的Windows Phone 7. 由於顯而易見的原因,我必須驗證我的表單。表單驗證
我通常在WPF中編程,並使用ValidationRule的原則。但我無法在windows phone 7中找到相同的原理。
因此我的問題是,如何創建表單驗證。
我需要開發一個應用程序的Windows Phone 7. 由於顯而易見的原因,我必須驗證我的表單。表單驗證
我通常在WPF中編程,並使用ValidationRule的原則。但我無法在windows phone 7中找到相同的原理。
因此我的問題是,如何創建表單驗證。
我複製了與在桌面上使用Silverlight相同的方法:INotifyDataErrorInfo接口。
Here我對它進行了更具體的描述,here可以下載示例項目的源代碼。
的simpliest例子看起來如此:
View.xaml
<TextBox Text="{Binding SomeProperty, Mode=TwoWay, ValidatesOnNotifyDataErrors=True, NotifyOnValidationError=True}"
Style="{StaticResource ValidationTextBoxStyle}" />
View.xaml.cs
public MainPage()
{
InitializeComponent();
this.BindingValidationError += MainPage_BindingValidationError;
}
private void MainPage_BindingValidationError(object sender, ValidationErrorEventArgs e)
{
var state = e.Action == ValidationErrorEventAction.Added ? "Invalid" : "Valid";
VisualStateManager.GoToState((Control)e.OriginalSource, state, false);
}
ViewModel.cs
public class MainViewModel : ValidationViewModel
{
public MainViewModel()
{
this.Validator.AddValidationFor(() => this.SomeProperty).NotEmpty().Show("Enter a value");
}
private string someProperty;
public string SomeProperty
{
get { return someProperty; }
set
{
someProperty = value;
RaisePropertyChanged("SomeProperty");
}
}
}
它依賴於大量的補充類,但同時你自己寫的代碼很少。
我會宣傳我的驗證實施:http://vortexwolf.wordpress.com/2012/03/10/windows-phone-7-validation。我認爲比互聯網上的其他實現更容易使用。 – vorrtex 2012-03-09 22:50:41