我是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 中使用了这段代码,但没有任何反应。 对不起我的英文
答案 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 ; }
}