【发布时间】:2014-12-22 08:33:43
【问题描述】:
我的情况如下
我想在未选择任何项目时隐藏删除按钮并在选择某项时显示。
如果用户选择一个项目并在其他地方单击(这表示该用户不再使用列表框),也会隐藏该按钮。
我尝试了LostFocus 事件,检查SelectedIndex 等,但没有成功。知道怎么做吗?
private void ListBoxItem_LostFocus(object sender, RoutedEventArgs e)
{
if (button.IsFocused != true) // checking if user has selected an item & clicking on button (valid action)
{
listbox.SelectedIndex = -1;
}
}
private void listbox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (listbox.SelectedIndex == -1)
{
button.Visibility = Visibility.Hidden;
}
else
{
button.Visibility = Visibility.Visible;
}
}
【问题讨论】:
-
向我们展示你目前的工作:)
-
从可用性的角度来看,这是一个非常非常糟糕的主意。想象一下第一次或很少查看您的应用程序的人。他/她必须知道/记住,在没有选择项目并且列表框被聚焦之前,可用操作的完整列表是不清楚的。这不是很明显,最好总是显示按钮,但在无法进行相关操作时禁用它。
-
@Dennis:是的,我同意。但就我而言,根据 UI 的设计,简单性很重要。用户不应该看到所有启用/禁用的东西,但它应该在必要时可用。