0

我使用文本框和按钮将项目添加到列表框:

if (tbName.Text != "")
{
     listBox.Items.Add(tbName.Text);
     //Let user add another new items
     tbName.Text = "";
}

并尝试选择做某事的项目(当我编辑它时)。

但问题是用户可以添加相同的项目值,而当我尝试选择其中一项时,它会导致失败。它会自动选择两个同名的项目,操作将不正确。

在此处输入图像描述

我可以使用某种方法强制列表框按索引选择项目(因为索引不应该相同)?或者我如何通过编程来分离相同的项目值(它不会选择相同的项目而只是选择我点击的内容,这是否意味着我应该通过选择项目拦截MouseDown或SelectChanged的事件参考鼠标点击的位置,比如行高是18px,所以如果我点击的位置在18~36px之间,那么选择项的索引应该是1,0是0~18px)?

我的列表框是:

<ListBox Height="248" HorizontalAlignment="Left" Margin="141,223,0,0" Name="listBox" VerticalAlignment="Top" Width="378" />
4

3 回答 3

0

我认为如果您设置SelectionMode="Single"Listbox 的属性可能会对您有所帮助。

于 2013-10-30T11:37:23.023 回答
0

使用 SelectedItem 或 SelectedInbdex

于 2013-10-30T11:40:26.620 回答
0

ObservableCollection终于用了。虽然我的问题还没有解决。

XAML:

            <ListBox Height="248" HorizontalAlignment="Left" Margin="141,223,0,0" Name="listBox" VerticalAlignment="Top" Width="378">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Location, Mode=TwoWay}" />
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

和代码:

    ObservableCollection<locateItem> locatList = new ObservableCollection<locateItem>();
    public class locateItem
    {
        public string Location { get; set; }
        public string Id { get; set; }
        public string Img { get; set; }
    }   

然后

listBox.ItemsSource = locatList;

谢谢 谢里登

于 2013-10-31T07:44:11.077 回答