WPF中的ListBox,我重写了ControlTemplate。
但是绑定一个ObservableCollection进去之后。首次Add进列表的内容都只显示个类名。之后Add进去的东西就正常显示了…
资源里面的代码大致如下:
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
……
.xaml.cs的代码
public UCImageMultiUploader()
{
InitializeComponent();
this.DataContext = this.Model = new UCImageMultiUploaderModel();
}
public UCImageMultiUploaderModel Model { get; set; }
ViewModel的代码
ObservableCollection<UCMultiUploaderAccessoryModelBase> _AccessoryList = new ObservableCollection<UCMultiUploaderAccessoryModelBase>();
public ObservableCollection<UCMultiUploaderAccessoryModelBase> AccessoryList
{
get { return _AccessoryList; }
set
{
_AccessoryList = value;
PropertyChangedInternal("AccessoryList");
}
}
然后在第一次执行
AccessoryList.Add(new AccessRel());
AccessoryList.Add(new AccessRel());
后,得到的画面是: