gpt4 book ai didi

wpf - 如何允许在列表框中多次选择相同的项目

转载 作者:行者123 更新时间:2023-12-05 07:47:03 25 4
gpt4 key购买 nike

单击 ListBoxItem 时如何强制更改选择?这是我创建的示例

XAML

<ListBox ItemsSource="{Binding Names}" SelectedItem="{Binding SelectedName}" />

C#

public class MainWindowViewModel : NotifyPropertyChanged
{
private string selectedName;

public MainWindowViewModel()
{
Names = NamesService.GetNames();
}

public ObservableCollection<string> Names { get; }

public string SelectedName
{
get { return selectedName; }
set
{
selectedName = value;
//do some work here
OnPropertyChanged();
}
}
}

因此,当我从列表中选择一个名称时,setter 会为 SelectedName 命中,但如果我第二次单击同一项目,我需要它再次命中该 setter。

我知道我可以用不同的方式实现它,例如在里面有按钮并将其更改为 ItemsControl,然后将按钮绑定(bind)到命令等。

但我感兴趣的是我是否可以通过 ListBox 实现上述目标,就像我希望通过 SelectedItem 实现的那样?

谢谢:)

最佳答案

这是为我做的。

注意:在这种情况下您不需要订阅 SelectionChanged

ListBox_Jumpmarks.AddHandler(Mouse.MouseDownEvent, new RoutedEventHandler(ListBox_Jumpmarks_MouseDown), true);

private void ListBox_Jumpmarks_MouseDown(object sender, RoutedEventArgs e)
{
// We only want to do stuff when an item of the ListBox was pressed: Handled = true
// When the ListBox itself is pressed, we don't want to do stuff: Handled = false
if (!e.Handled || sender != ListBox_Jumpmarks)
{
return;
}

// YOUR CODE
// The selection of the item was done before. So you can now use ListBox.SelectedItem
}

关于wpf - 如何允许在列表框中多次选择相同的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40176730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com