我是第一次接触WPF,我有这个ListBox,我想用一个特定的ListBoxItem来实例化它,这样用户就知道如何处理这个ListBox。
<ListBox Name="DbListBox"
Grid.Column="3"
HorizontalAlignment="Left"
Height="246"
Margin="0,99,0,0"
Grid.Row="1"
VerticalAlignment="Top"
Width="211"
SelectionMode="Single"
SelectedItem="{Binding Path=selectedDB,Mode=TwoWay}"
AllowDrop="True"
Drop="DbListBox_Drop">
<ListBoxItem Name="ListBoxItem" FontStyle="Italic">Drag .db file here or add below</ListBoxItem>
</ListBox>然后我有一些代码将一个项目集合添加到这个ListBox的ItemsSource中,但是我不能这样做,因为ItemsSource不是空的
DbListBox.ItemsSource = DbCollection;我的问题是,如何启动先插入项的ListBox,然后在添加DbCollection时,它会简单地覆盖第一个ListBoxItem?
发布于 2014-11-05 19:17:48
当正确使用WPF时,我们通常会有类似这样的东西,其中集合属性将是绑定到ListBox.ItemsSource属性的数据:
<ListBox ItemsSource="{Binding SomeCollectionProperty}" />一旦我们有了这个XAML,我们就不需要再接触ListBox了,因为我们可以在数据绑定集合中添加或删除项,它们就会神奇地从ListBox中出现(或消失
SomeCollectionProperty.Add(new SomeDataType());
SomeCollectionProperty.Remove(someItemFromCollection);这里使用的SomeDataType由您决定...这取决于您要在项目中显示的内容。例如,如果它只是一个普通的string,那么您可以简单地这样做,将您的初始项添加到集合中:
SomeCollectionProperty.Add("Drag .db file here or add below");如果您想让该项看起来不同于其他项,则需要对具有Text属性和FontStyle属性的自定义类进行数据绑定。您可以在DataTemplate中对这些属性进行数据绑定,以将每个项目设计为您想要的样子。然而,这是一个完全不同的问题。
要了解有关这些内容的更多信息,请阅读MSDN上的Data Binding Overview和Data Templating Overview页面。
https://stackoverflow.com/questions/26755623
复制相似问题