更新可观察集合中不同元素的数据绑定

本文关键字:元素 数据绑定 观察 集合 更新 | 更新日期: 2023-09-27 18:35:42

到目前为止,我有一个可观察的集合,其中只有一种类型的对象,但现在我有第二种类型的对象。我已经将一些 wpf 元素绑定到这个集合的元素,我现在想要的是输入表单根据它在集合中绑定到的对象类型而变化。最好的方法是什么?

更新可观察集合中不同元素的数据绑定

使用不带x:Key但带有DataType={x:Type typename}DataTemplate。为集合中的每个类型编写一个数据模板。然后,WPF 会自动选择与集合中的项类型匹配的数据模板。

例:

<DataTemplate DataType="{x:Type local:StringType}">
  <TextBox Text="{Binding Text}" />
</DataTemplate>
<DataTemplate DataType="{x:Type local:BooleanType}">
  <CheckBox IsChecked="{Binding Value}" />
</DataTemplate>