Исходя из вашего комментария выше, я бы использовал Converter
Ваша ViewModel будет содержать зашифрованные данные, а привязка к представлению использует конвертер, который преобразует его в нечто читаемое. Когда пришло время сохранить данные обратно во ViewModel, используйте метод конвертера ConvertBack
для повторного шифрования данных.
<TextBox Text="{Binding EncryptedAccountNumber,
Converter={StaticResource DecryptTextConverter}}" />
public class DecryptTextConverter: IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
// Implement decryption code here
return decryptedValue;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
// Implement encryption code here
return ecryptedValue;
}
}
Если код шифрования занимает некоторое время, установите UpdateSourceTrigger=Explicit
и вручную запустите обновление источника при нажатии кнопки Сохранить.