我有一个关于 WPF 绑定和转换 XAML 中 UI 对象看到的数据类型的问题。
我有一个用户控件,我想在不同的应用程序中重用它。用户控件显示一个缩略图和几个 TextBlocks 来显示人员的人口统计信息,例如姓名和地址。用户控件用于 MVVM 设计,因此它绑定到特定于用户控件的 ViewModel。
遵循典型的 MVVM 设计原则,用户控件的 ViewModel 通常嵌入到其他 ViewModel 中以构成更大的 UI。
用户控件视图模型期望某个类型(类)作为其绑定对象。然而,嵌入UC的VM的ViewModel具有完全不同的对象模型,因此它们不能简单地将数据传递给UC的VM。需要将父 VM 的数据模型转换为 UC VM 的数据模型。
我的问题是:是否有一种认可的方式来执行这种转换?
我查看了 IValueConverter 和 IMultiValueConverter ,这些看起来不像是要走的路。
我想我需要的是父 VM 和嵌入式 UC VM 之间的一种 shim,其中父 VM 的数据被转换为 UC VM 所需的格式。
或者,它基本上归结为我必须编写一个自定义 UC VM 来处理父 VM 提供的任何类型?