好的,我知道这有点奇怪,但我正在尝试创建一个数据驱动面板,该面板根据我在对象上拥有的 DataTemplate 成员重新配置自身。现在,我通过使用绑定到 1 个虚假项目的虚拟列表的 ItemsControl 来完成此操作,以便获得数据模板的单个实例。必须在 ItemsControl 中执行此操作似乎很愚蠢,但如果不尝试针对项目列表执行此操作,我想不出任何会使用我的 DataTemplate 的东西。有人知道吗?
为了清楚起见,假设我有一个 Widget 类:
public class Widget
{
public string Name { get; set; }
public DataTemplate MyTemplate { get; set; }
public List<object> DummyList = new List<object> { new object(); }
}
和 Xaml 类似:
<ItemsControl ItemsSource={Binding DummyList} ItemTemplate={Binding MyTemplate}/>
然后,我可以创建一组小部件,并根据对象的状态使用正确的数据模板填充每个小部件。
无论如何,正如我所说,这行得通......如果有人知道的话,我只想找到一个比使用 ItemsControl 更优雅的解决方案。