0

リストボックスにアイテムを追加するには、テキストボックスとボタンを使用します。

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

そして、何かをしているアイテムを選択してみてください(編集中)。

しかし、問題は、ユーザーがアイテムの同じ値を追加できることです.アイテムの1つを選択しようとすると、失敗します. 同名のアイテムが2つ自動選択されてしまい、動作がおかしくなります。

ここに画像の説明を入力

いくつかの方法を使用して、リストボックスにインデックスでアイテムを強制的に選択させることはできますか (インデックスは同じであってはならないため)。または、プログラミングによってアイテムの同じ値をどのように分解できますか(同じアイテムを選択するのではなく、クリックしたものを選択するだけです。これは、マウスクリックの位置を参照するアイテムを選択して、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

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 に答える