将项附加到WPF中的数据绑定项控件

将项附加到WPF中的数据绑定项控件,wpf,data-binding,itemscontrol,Wpf,Data Binding,Itemscontrol,我有一个组合框,它被数据绑定到一个可观察的项目集合。我希望有一个默认的选定项(无),它将我绑定到“SelectedValue”的属性值设置为null 我认为应该有一种方法通过Style/DataTemplate/TemplateSelector的某种组合来实现这一点。我试图在设计时考虑到MVVM,所以我想要一些不使用codebehind并且尽可能可重用的东西。我还希望ObservableCollection(更新集合导致控件重新绑定)的好处保持不变 奖金B部分: 我还希望能够在ItemsCont

我有一个组合框,它被数据绑定到一个可观察的项目集合。我希望有一个默认的选定项(无),它将我绑定到“SelectedValue”的属性值设置为null

我认为应该有一种方法通过Style/DataTemplate/TemplateSelector的某种组合来实现这一点。我试图在设计时考虑到MVVM,所以我想要一些不使用codebehind并且尽可能可重用的东西。我还希望ObservableCollection(更新集合导致控件重新绑定)的好处保持不变

奖金B部分:
我还希望能够在ItemsControl的底部附加一个额外的可视元素。我在想,如果我知道如何在集合的最后一项上触发DataTemplate,那么更改DataTemplate就很容易了。愿意在这里考虑其他选项。

我发现最简单的方法是在基础集合中插入一个“特殊”值,并在选中时显示“(无)”文本。显然,您需要通过转换器运行绑定,以考虑该值,并在选择该值时返回null。(请参阅我的一篇文章,这是我尝试向组合框的基础集合添加实际空值的结果。)


话虽如此,在课堂上你可以做你想做的事情。您可以创建一个单独的集合(只有一个项—空项),并通过CompositeCollection将组合框绑定到它和原始集合。

我已经尝试过了。将CollectionContainer的“Collection”属性绑定到DataContext(例如)中的对象的属性并不是很幸运。不过,从静态资源来看效果非常好。。。我是不是遗漏了什么?