列表框 - 添加两个相同的项目 - WPF

时间:2012-04-19 09:16:41

标签: wpf c#-4.0 listbox wpf-controls

我有一个ListBox(WPF),我在运行时添加它的字符串.... 如果我尝试添加已经存在于ListBox中的字符串,它会抛出一个异常.....告诉该项已经在ListBox中.... 如何向ListBox添加相同的字符串? 因为我必须在我的应用程序中添加2个相同的字符串.... 感谢....

ListBox -

<ListBox x:Name="listBox_MyListBox" Height="Auto" Width="Auto" Background="Transparent" MaxHeight="170" BorderThickness="0" Margin="3">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <TextBlock Margin="3" Padding="2" Text="{Binding}" TextAlignment="Center" FontSize="13"/>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>

在后面的代码中我添加了类似的字符串 -

 this.listBox_MyListBox.Items.Add(text.ToString());

2 个答案:

答案 0 :(得分:1)

为什么不是一个简单的清单?

简单而不是mvvm方式:

 public List<string> MyItems {get; set;}

 listBox_MyListBox.ItemsSource = MyItems;

 MyItems.Add("t1");
 MyItems.Add("t2");
 MyItems.Add("t1");//again

我会在列表中使用viewmodel并绑定到列表框。但上面的代码也可以。

答案 1 :(得分:0)

是的,您可以将重复的项目添加到列表框,它允许没有任何问题 例如:

private void Window_Loaded ( object sender, RoutedEventArgs e )
{
   listBox_MyListBox.Items.Add ( "demo" );
   listBox_MyListBox.Items.Add ( "demo" );            
}

注意: 如果您使用任何不允许重复的数据源,它将不允许您添加重复: 字典或Hashtable可能不允许重复条目,如果是这种情况,那么选择List或datatable作为数据源