我是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?
答案 0 :(得分:0)
正确使用WPF时,我们通常会有类似这样的内容,其中collection属性是绑定到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页面。