C# WPF中的多个绑定

C# WPF中的多个绑定,c#,.net,wpf,data-binding,C#,.net,Wpf,Data Binding,在wpf控件上的xaml中是否可以有多个项源绑定 目前我正在使用mvvm模式,并且有一个绑定到一个对象类型的项绑定 ItemSource="{Binding ProcessModel}" 这样就有了一个ItemTemplate ItemTemplate="{DynamicResource PMDataTemplete}" 这目前还可以,因为我只使用了一种类型的对象。我想扩展它,这样我就可以拥有一个或第二个不同类型的对象,但它不需要同时绑定到这两个对象 我试图实现的是一种情况,即一种对象类型可

在wpf控件上的xaml中是否可以有多个项源绑定

目前我正在使用mvvm模式,并且有一个绑定到一个对象类型的项绑定

ItemSource="{Binding ProcessModel}"
这样就有了一个ItemTemplate

ItemTemplate="{DynamicResource PMDataTemplete}"
这目前还可以,因为我只使用了一种类型的对象。我想扩展它,这样我就可以拥有一个或第二个不同类型的对象,但它不需要同时绑定到这两个对象

我试图实现的是一种情况,即一种对象类型可以根据用户的选择进行绑定,并且绑定将起作用,如果用户选择不同的路径,则另一种类型的对象将显示在同一控件上

因此,几乎可以根据itemsource的对象类型使用case语句。

编写自己的(更灵活,但更复杂)或为需要在ItemsControl中呈现的类型定义数据模板。

有两个选项:

  • 您可以为不同类型定义数据模板
  • 您可以像Dennis提到的那样编写DataTemplateSelector

  • 谢谢,这看起来是一个很好的解决方案,我有一个问题,在mvvm中如何处理ItemSource,在我的问题中,我绑定到一个对象类型的列表,但我需要两个?当ItemsControl需要呈现一个项时,它确定一个项的类型,然后查找在参考资料中定义的数据模板。如果找不到数据模板,控件将检查ItemTemplateSelector,并尝试从selector获取模板。这并不意味着,您使用的是哪种方法-MVVM还是非MVVM。而且,这并不意味着ItemSource中有什么(以及有多少)类型的对象——您可以绑定到List并用所需的一切填充List。