【发布时间】:2016-03-08 04:07:14
【问题描述】:
我有一个 MVVM WPF 应用程序,用于显示纸牌游戏的卡片。我只是在屏幕上显示它们,连续 4 张卡片,但有许多卡片在可观察的集合中。然而,这些卡片都是从一个基类继承而来的不同类型。作为用户控件,每种卡片类型都有其自己的截然不同的视图。所以,根据我的经验,我知道我可以将 ItemSource 属性绑定到我的 observable 集合,但是如何根据我的 ItemSource 中的项目类型指定使用某些用户控件?我推测我可以只加载每张卡的所有用户控件,并根据卡类型在转换器中打开或关闭每个控件的可见性,但这对我来说效率极低。有人知道吗?
【问题讨论】:
-
您为每种卡类型声明一个DataTemplate。或者,如果卡片都是相同的类类型,但在属性中指定了它们的类型,那么您可以使用 DataTriggers。
标签: c# wpf xaml mvvm user-controls