【发布时间】:2009-04-06 19:17:18
【问题描述】:
我有一个关于 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 提供的任何类型?
【问题讨论】:
-
当您使用术语用户控件视图模型时是什么意思?相关用户控件使用的视图模型?
标签: wpf data-binding mvvm