WPF中的ListBox,重写ControlTemplate之后,第一个Item显示异常的问题。

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());

后,得到的画面是:

第一项显示的是类名,第二项显示的正常了

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^