WPF Listbox selectedindex无效<no change =“”> </no>

时间:2014-10-04 17:10:58

标签: c# wpf listbox

我是WPF的新手。我创建了一个ListBox

<ListBox 
  Name="listBoxQuestion" 
  Grid.Row="1" Margin="3" 
  SelectionMode="Single" 
  MouseDown="listBoxQuestion_MouseDown" 
  SelectionChanged="listBoxQuestion_SelectionChanged" 
  DisplayMemberPath="Text">
</ListBox>

我使用 listBoxQuestion.SelectedIndex 来获取所选项目的索引。但它只能一次,这是我第一次点击项目。当我点击其他项时,索引不会更改。它仍然保持当前值。我无法在代码中找到错误。请帮帮我!

  

更新

有我的itemsource

public class ListTopicBinding : ObservableCollection<Question>
{
}

ListQuestionBinding listQuestionShowing = new ListQuestionBinding();

listBoxQuestion.ItemsSource = listQuestionShowing;

当我创建新项目时,我使用代码

Question q = new Question();
q.Text = "*";
listQuestionShowing.Add(q);

我发现当我删除Question类中的函数时

public override int GetHashCode()
    {
        return this.Text.GetHashCode();
    }

我的ListBox正常工作。我想知道&#34; GetHashCode &#34; func影响 WPF 中的 ListBox 。我在 WinForm 中使用了这段代码,但没有任何反应。 对不起我的英文

2 个答案:

答案 0 :(得分:0)

这是你想要的吗?

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        listBoxQuestion.ItemsSource = new List<String> { "AAA", "BBB", "CCC" };
    }

    private void listBoxQuestion_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        MessageBox.Show("You selected " + listBoxQuestion.SelectedItem.ToString());
    }

答案 1 :(得分:0)

问题中的名称不匹配

ItemsSource="{Binding Path=listTopicBinding}"
DisplayMemberPath="Text"

private ListTopicClass listTopicBinding = new ListTopicClass();
public ListTopicBinding 
{
   get { return listTopicBinding ; }
}