【发布时间】:2011-06-11 01:59:38
【问题描述】:
过去几个小时我一直在努力解决这个问题......
我有一个名为“DayItem”的用户控件,我想在另一个名为“DayPanel”的用户控件中显示 48 次。
让我提一下这是以 MVVM 风格完成的,但我只是在体验,直接的方式就可以得到答案。
我在DayPanel 模型中有一个ObservableCollection<DayItem>,在Xaml 中有一个<ItemsPresenter />。
如果我愿意
this.ItemsSource = DayItems;
一切正常。 但是,我希望能够像列表一样在 UI 中使用这些 DayItems...以支持多选等。
所以我尝试使用 ContentControl,并将其内容设置为 ObservableCollection。
但它只显示 ObservableCollection 对象的 ToString 文本。
所以我想我需要一个DataTemplete ......
但为什么我需要一个 DataTemple 来显示一个控件?
它已经在它自己的 Xaml 中设置了样式,我不想再重复它的样式了。
或者我完全错了,无论如何我需要帮助:x
编辑:
我得到了这个工作,说什么 DataType 是不必要的,甚至是不可能的。 在后面的代码中我告诉列表框,它的 ItemSource 是 ObservableCollection。
现在我遇到了其他问题... ListBox 相关... ListBox中的每个控件之间都有Gap,弄乱了布局 而且我还需要想办法通过拖动来选择多个项目...
谢谢你这么胖的帮助
【问题讨论】:
-
ContentControl == 包含 1 元素。显然这里不是正确的选择。您可以将 ContentControl 用作 ItemPlate。
标签: c# silverlight data-binding mvvm user-controls