プロパティを検証し、プロパティが特定の基準を満たさない場合にはキャンセル、保存またはロードします。保存プロセスの間、コントロールの Width プロパティの保存をキャンセルします。ロードの間、Height プロパティ値をチェックします。
InitializeComponent メソッドの後でページ コンストラクターに以下のコードを追加します。
Private ps As New PersistenceSettings()
Public Sub New()
InitializeComponent()
' イベントを登録します
AddHandler ps.Events.SavePropertyPersistence, AddressOf _SavePropertyPersistence
AddHandler ps.Events.LoadPropertyPersistence, AddressOf _LoadPropertyPersistence
End Sub
PersistenceSettings ps = new PersistenceSettings();
public MainPage()
{
InitializeComponent();
// イベントを登録します
ps.Events.SavePropertyPersistence +=
new EventHandler<SavePropertyPersistenceEventArgs>(_SavePropertyPersistence);
ps.Events.LoadPropertyPersistence +=
new EventHandler<LoadPropertyPersistenceEventArgs>(_LoadPropertyPersistence);
}
Private Sub _SavePropertyPersistence(ByVal sender As Object, ByVal e As SavePropertyPersistenceEventArgs)
' Width プロパティを識別します
If e.PropertyPath.Equals("Width") Then
' Width プロパティの保存をキャンセルします
e.Cancel = True
End If
End Sub
Private Sub _LoadPropertyPersistence(ByVal sender As Object, ByVal e As LoadPropertyPersistenceEventArgs)
' Height プロパティを識別して、高さが 200 を超える場合は Load をキャンセルします
If e.PropertyPath.Equals("Width") AndAlso Convert.ToInt32(e.Value) > 200 Then
' このプロパティはロードされません
e.Handled = True
End If
End Sub
private void _SavePropertyPersistence(object sender, SavePropertyPersistenceEventArgs e)
{
// Width プロパティを識別します
if (e.PropertyPath.Equals("Width"))
{
// Width プロパティの保存をキャンセルします
e.Cancel = true;
}
}
private void _LoadPropertyPersistence(object sender, LoadPropertyPersistenceEventArgs e)
{
// Height プロパティを識別して、高さが 200 を超える場合は Load をキャンセルします
if (e.PropertyPath.Equals("Width") && Convert.ToInt32(e.Value) > 200)
{
// このプロパティはロードされません
e.Handled = true;
}
}