C# 如何在Listview中再次选择所选项目?

C# 如何在Listview中再次选择所选项目?,c#,wpf,C#,Wpf,我想再次选择selecteditem。 但是,selectedChanged仅在项目更改时有效。我怎样才能重新选择seleceditem?我怀疑这个解决方案是否就是您优雅地解决问题所需要的。您的逻辑不应依赖于选择项目两次或两次以上。由于您决定不提供任何信息,我无法提出任何建议来修复您的代码 要将所选项目再次设置为当前所选项目以触发SelectionChanged事件,您可以: 如果在范围内,只需直接调用事件处理程序: private void taskList_SelectionChanged(

我想再次选择selecteditem。
但是,selectedChanged仅在项目更改时有效。我怎样才能重新选择seleceditem?

我怀疑这个解决方案是否就是您优雅地解决问题所需要的。您的逻辑不应依赖于选择项目两次或两次以上。由于您决定不提供任何信息,我无法提出任何建议来修复您的代码

要将所选项目再次设置为当前所选项目以触发SelectionChanged事件,您可以:

如果在范围内,只需直接调用事件处理程序:

private void taskList_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (taskList.SelectedItem == null)
        {
            editButton.IsEnabled = false;
        }
        else
        {
            inputTitle.Text = (taskList.SelectedItem as AddItem).Title.Trim();
            editButton.IsEnabled = true;
        }
    }

如果您使用的是behing代码,则可以声明如下全局变量:

var selectedItem = taskList.SelectedItem;
taskList.SelectedItem = null;
taskList.SelectedItem = selectedItem;
//Type must match the "itemsource" of your tasklist
Type _myGlobalVariable;
_myGlobalVariable = tasklist.SelectedItem;
private Type _myPropFul;

public Type MyPropFul
{
    get => __myPropFul;
    set => SetProperty(ref _myPropFul, value);
}
将其分配给任务列表的SelectedItem,如下所示:

var selectedItem = taskList.SelectedItem;
taskList.SelectedItem = null;
taskList.SelectedItem = selectedItem;
//Type must match the "itemsource" of your tasklist
Type _myGlobalVariable;
_myGlobalVariable = tasklist.SelectedItem;
private Type _myPropFul;

public Type MyPropFul
{
    get => __myPropFul;
    set => SetProperty(ref _myPropFul, value);
}
在任何情况下,你都可以称之为myGlobalVariable

但是,如果您使用的是MVVM aproach,那么首先需要创建一个全局属性。大概是这样的:

var selectedItem = taskList.SelectedItem;
taskList.SelectedItem = null;
taskList.SelectedItem = selectedItem;
//Type must match the "itemsource" of your tasklist
Type _myGlobalVariable;
_myGlobalVariable = tasklist.SelectedItem;
private Type _myPropFul;

public Type MyPropFul
{
    get => __myPropFul;
    set => SetProperty(ref _myPropFul, value);
}
并将其绑定到集合控件,如下所示:

var selectedItem = taskList.SelectedItem;
taskList.SelectedItem = null;
taskList.SelectedItem = selectedItem;
//Type must match the "itemsource" of your tasklist
Type _myGlobalVariable;
_myGlobalVariable = tasklist.SelectedItem;
private Type _myPropFul;

public Type MyPropFul
{
    get => __myPropFul;
    set => SetProperty(ref _myPropFul, value);
}

听起来有点问题。你到底想在这里存档什么?