or


<Window x:Class="TestTelerikWpfApp.MainWindow" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:local="clr-namespace:TestTelerikWpfApp" Title="MainWindow" Height="300"> <Window.Resources> </Window.Resources> <StackPanel> <TextBox telerik:PersistenceManager.StorageId="textBox" /> <StackPanel Orientation="Vertical"> <telerik:RadButton Content="Save" Click="SaveButton_Click" /> <telerik:RadButton Content="Read" Click="ReadButton_Click" /> </StackPanel> </StackPanel></Window>namespace TestTelerikWpfApp{ using System.Windows; using System.Windows.Controls; using Telerik.Windows.Persistence.Services; using Telerik.Windows.Persistence.Storage; public partial class MainWindow : Window { private IsolatedStorageProvider isoProvider; public MainWindow() { InitializeComponent(); ServiceProvider.RegisterPersistenceProvider<ICustomPropertyProvider>(typeof(TextBox), new UnsetValuePropertyProvider()); isoProvider = new IsolatedStorageProvider(); } private void SaveButton_Click(object sender, RoutedEventArgs e) { isoProvider.SaveToStorage(); } private void ReadButton_Click(object sender, RoutedEventArgs e) { isoProvider.LoadFromStorage(); } }}namespace TestTelerikWpfApp{ using Telerik.Windows.Data; using Telerik.Windows.Persistence.Services; class UnsetValuePropertyProvider : ICustomPropertyProvider { public CustomPropertyInfo[] GetCustomProperties() { return new CustomPropertyInfo[] { new CustomPropertyInfo("UnsetValue", typeof(UnsetValueProxy)) }; } public void InitializeObject(object context) { } public object InitializeValue(CustomPropertyInfo customPropertyInfo, object context) { return null; } public object ProvideValue(CustomPropertyInfo customPropertyInfo, object context) { return new UnsetValueProxy() { Value = OperatorValueFilterDescriptorBase.UnsetValue }; } public void RestoreValue(CustomPropertyInfo customPropertyInfo, object context, object value) { var unsetValueProxy = value as UnsetValueProxy; var isUnsetValueSame = unsetValueProxy.Value == OperatorValueFilterDescriptorBase.UnsetValue; // isUnsetValueSame = false !!! } }}namespace TestTelerikWpfApp{ class UnsetValueProxy { public object Value { get; set; } }}