wpf - ViewModel 如何在需要时从 View 中请求数据?

标签 wpf mvvm dependency-properties

我的 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/

相关文章:

WPF 应用程序更改大小

c# - 如何在遵循 MVVM 设计模式的 WPF 应用程序中工作之前显示等待对话框?

mvvm - Caliburn Micro 中的命令类

wpf - Xamarin.Forms BindableProperty 和 WPF DependencyProperty 之间的区别

c# - 如果属性值没有变化,是否可以从 IValueConverter 进行 "cancel"依赖属性赋值?

c# - 如何在 C# 中使用 WPF 动态添加列到 DataGrid

.net - WPF 在 ViewModel.PropertyChanged 事件上更改按钮内容

.net - 推荐的 WPF 应用程序项目结构是什么?

mvvm - 使用 MVVM 和 Caliburn.Micro 显示 MessageDialog

Maven:从不同的 pom 导入 pom 属性