我在某处读过工具包中的longlistselector在性能方面比现有的listbox更好。所以,我将列表框更改为longlistselector。现在我有一个图像按钮控件保存在longlistselector(就像一个复选框)。当我单击按钮时,列表选择已更改事件将随按钮单击一起触发。列表框中的按钮按预期正常工作,但在longlistselector中没有。如何停止列表选择更改事件?我在这方面搜索了很多,但找不到任何有用的东西。首先是可能吗?
答案 0 :(得分:1)
我不会理所当然地认为长列表选择器的性能优于列表框。列表框在涉及绑定时使用虚拟化堆栈面板,并且性能非常好。我走了使用工具包中的列表选择器的道路,最后由于一些不良的性能问题而后悔。如果它适用于列表框,我会说坚持使用列表框,只有在你发现将来遇到性能问题时才会离开。
答案 1 :(得分:0)
当单击按钮时,触发按钮事件处理程序,并且当长列表选择器中的项目发生更改时,如果它也被注册,则触发相应的选择更改事件。但是单击同一个选定项目上的按钮,只触发按钮事件处理程序。我建议只有一个按钮事件处理程序,并从中获取所选项目。
private void ButtonEvent_Click(object sender, RoutedEventArgs e)
{
HoldingClass clicked=((sender as Button).DataContext as HoldingClass);
//Do something with the HoldingClass as this is the binding element to the long list selector
}
答案 2 :(得分:0)
将ClickMode更改为在XAML中按
ClickMode="Press"
并在你里面点击事件处理程序make(YourListName).SelectedItem = null;
private void deleteButton_Click(object sender, RoutedEventArgs e)
{
MainLongListSelector.SelectedItem = null;
..
}