我在列表框中没有看到选定的项目。如何在ListBox WPF中选择项目?

问题描述 投票:0回答:1

在我的WPF项目中,我有ListBox,我想添加SearchBox。我创建了TextBox和Button。单击按钮时的事件如下所示:(我使用MVVM和RelayCommand)

        private void Search()
        { 
            ListBox.SelectedItems.Clear();

            if (string.IsNullOrEmpty(SearchTextBox))
            {
                return;
            }

            for(var i = 0; i < ListBox.Items.Count-1; ++i)
            {
                if(ListBox.Items[i].ToString().ToLower().Contains(searchTextBox.ToLower()))
                {
                    ListBox.SelectedItems.Add(ListBox.Items[i]);
                    ListBox.SelectedIndex = i;
                }
            }
        }

并且在SelectedItems中添加了正确的元素,但在我的程序元素中未选择。

c# wpf mvvm listbox
1个回答
0
投票

从视图模型中引用ListBox元素肯定不是MVVM。

无论如何,要解决选择问题,您应该遍历all个项目,即直到i < ListBox.Items.Count而不是ListBox.Items.Count - 1,并且not设置SelectedIndex属性:

ListBox.SelectedItems.Clear();


for (var i = 0; i < ListBox.Items.Count; ++i)
{
    if (ListBox.Items[i].ToString().ToLower().Contains(searchTextBox.ToLower()))
    {
        ListBox.SelectedItems.Add(ListBox.Items[i]);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.