C# 将字符串转换为ListViewItem对象名称

C# 将字符串转换为ListViewItem对象名称,c#,uwp,uwp-xaml,C#,Uwp,Uwp Xaml,我正在尝试将字符串转换为ListViewItem变量。例如: string string1 = "myItem"; 但我无法将其转换为ListViewItem,例如ListViewItem“myItem”=new ListViewItem()对象和变量之间存在差异。对象本身没有名称。变量名在编译时决定。除非通过反射,否则不能通过执行时间确定的名称访问变量 但您可以将其包装在包含名称的对象中 public class ListViewItemName:ListViewItem

我正在尝试将字符串转换为ListViewItem变量。例如:

string string1 = "myItem";

但我无法将其转换为ListViewItem,例如
ListViewItem“myItem”=new ListViewItem()

对象和变量之间存在差异。对象本身没有名称。变量名在编译时决定。除非通过反射,否则不能通过执行时间确定的名称访问变量

但您可以将其包装在包含名称的对象中

public class ListViewItemName:ListViewItem
{
    
    public string ItemName { get; set; }

    public ListViewItemName(string itemName, string name)
    {
        ItemName=itemName;
        base.Name=  name;
    }
}
您可以这样使用它:

var string1 = "myItem";
var listViewItemName = new ListViewItemName (string1,"item1");

但对于实际使用,阵列可能更好:

var items = new ListViewItemName[] { listViewItemName1,listViewItemName2 ... };
C#不支持动态变量名

根据您的要求,您可能需要使用
词典

字典列表视图=新建字典();
//加:
listViews[string1]=新ListViewItem();
//获取:
ListViewItem lvi=listViews[string1];

或者像往常一样使用编译时变量。

如果答案解决了您的问题,请将其视为已接受
Dictionary<string, ListViewItem> listViews = new Dictionary<string, ListViewItem>();
//add:
listViews[string1] = new ListViewItem();
//get:
ListViewItem lvi = listViews[string1];