我的 View 上有一个计算属性,需要绑定(bind)到我的 View 模型。我正在使用 WPF,似乎没有办法创建一个自计算的可绑定(bind)属性(依赖属性)。我不想在 View 的状态发生变化时执行计算,因为它们是时间密集型的。我想在 ViewModel 需要结果时(即关闭时)进行计算。
最佳答案
根据您上面的评论,我会使用 Converter
您的 ViewModel 将包含加密数据,并且与 View 的绑定(bind)使用转换器将其转换为可读的内容。当需要将数据保存回 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
并在单击“保存”按钮时手动触发源更新。
关于wpf - ViewModel 如何在需要时从 View 中请求数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7030519/