0

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

列表框 -

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

2 回答 2

1

为什么不是一个简单的列表?

简单的非 mvvm 方式:

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

 listBox_MyListBox.ItemsSource = MyItems;

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

我会在您的列表中使用视图模型并绑定到列表框。但上面的代码也可以。

于 2012-04-19T09:54:58.737 回答
0

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

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

注意:如果您使用任何不允许重复的数据源,它不会让您添加重复项:字典或哈希表可能不允许重复条目,如果是这种情况,则选择列表或数据表作为数据源

于 2012-04-19T09:35:19.560 回答