Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何以编程方式选择列表视图项_C#_Listview_Uwp - Fatal编程技术网

C# 如何以编程方式选择列表视图项

C# 如何以编程方式选择列表视图项,c#,listview,uwp,C#,Listview,Uwp,我正在制作一个图书馆管理软件。当用户单击一本书时,我希望显示有关该书的完整信息。类型手册的属性之一是标记。因为一本书可能有很多标签,所以我决定使用列表视图来显示标签 我想在列表视图中选择标记。我该怎么做?我找到了。公认的答案是使用方法ListView.Select(),不幸的是,该方法不存在。另外,ListView.Items[0]。Selected=true不编译。这就是错误: 错误CS1061“object”不包含“Selected”的定义,并且找不到接受“object”类型的第一个参数的可

我正在制作一个图书馆管理软件。当用户单击一本书时,我希望显示有关该书的完整信息。类型手册的属性之一是标记。因为一本书可能有很多标签,所以我决定使用列表视图来显示标签

我想在列表视图中选择标记。我该怎么做?我找到了。公认的答案是使用方法
ListView.Select()
,不幸的是,该方法不存在。另外,
ListView.Items[0]。Selected=true不编译。这就是错误:

错误CS1061“object”不包含“Selected”的定义,并且找不到接受“object”类型的第一个参数的可访问扩展方法“Selected”(是否缺少using指令或程序集引用?)

编辑:有人要求输入代码。给你

这是listview:

<ListView x:Name="TagsListView"
                  SelectionMode="Multiple"
                  ItemsSource="{x:Bind Tags}"
                  Grid.Row="4"
                  Grid.Column="1"/>
编辑:我觉得你们不理解这个问题。问题是

ListView.Items[0].Selected = true;
上面的代码行不可编译!它给出了上面提到的错误。Select()
只激活控件(将焦点设置为该控件)而不选择其项,因此它不是您要查找的内容

但你刚才提到的这个问题就是你问题的答案:

ListView1.Items[0].Selected = true;

但是,您应该使用现有ListView实例的名称属性,而不是ListView本身。如果您没有重命名它,它应该类似于
listView1

基于此,我认为您应该将标记添加到TagsListView。SelectedItems

当您更新
ListView
中的选定项时,您的ListView可能不会在当时使用数据进行初始化,请尝试在页面
Loaded
事件中更新ListView,如下所示

public sealed partial class BookInfo_View : Page
{
    //don't worry about DataAccess. 
    private Book book = new Book();
    private List<string> Tags = DataAccess.GetTags();
    private string[] selectedTags;

    public BookInfo_View()
    {
        this.InitializeComponent();
    }

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        book = (Book)e.Parameter;

        //dont worry about how this works. This line of code gives me the tags
        selectedTags = book.Tags.Split(';', System.StringSplitOptions.RemoveEmptyEntries);

        //here i want to select the selected tags
        this.Loaded += OnPageLoaded;
    }

    private void OnPageLoaded(object sender, RoutedEventArgs e)
    {
       foreach (string selectedTag in selectedTags)
       {
         TagsListView.SelectedItems.Add(selectedTag);
       }
    }
}
public sealed分部类图书信息\u查看:第页
{
//不要担心数据访问。
私人书籍=新书();
private List Tags=DataAccess.GetTags();
私有字符串[]选择的标记;
公共图书信息视图()
{
this.InitializeComponent();
}
受保护的覆盖无效OnNavigatedTo(NavigationEventArgs e)
{
book=(book)e.参数;
//不用担心它是如何工作的。这行代码给了我标签
selectedTags=book.Tags.Split(“;”,System.StringSplitOptions.RemoveEmptyEntries);
//我想在这里选择所选的标签
this.Loaded+=OnPageLoaded;
}
private void OnPageLoaded(对象发送方、路由目标方)
{
foreach(selectedTags中的字符串selectedTag)
{
TagsListView.SelectedItems.Add(selectedTag);
}
}
}

检查此项:我对每个(selectedTags中的字符串selectedTag){TagsListView.SelectedItems.Add(selectedTag);}进行了此项检查。。它没有突出显示列表视图项。我觉得this.Loaded+=OnpageLoaded应该在构造函数中,因为构造函数将只调用一次,但OnNavigateTo()可能会被多次调用once@Hemil是的,您是正确的,或者您可以在
OnNavigatedFrom
中注销它。
ListView1.Items[0].Selected = true;
public sealed partial class BookInfo_View : Page
{
    //don't worry about DataAccess. 
    private Book book = new Book();
    private List<string> Tags = DataAccess.GetTags();
    private string[] selectedTags;

    public BookInfo_View()
    {
        this.InitializeComponent();
    }

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        book = (Book)e.Parameter;

        //dont worry about how this works. This line of code gives me the tags
        selectedTags = book.Tags.Split(';', System.StringSplitOptions.RemoveEmptyEntries);

        //here i want to select the selected tags
        this.Loaded += OnPageLoaded;
    }

    private void OnPageLoaded(object sender, RoutedEventArgs e)
    {
       foreach (string selectedTag in selectedTags)
       {
         TagsListView.SelectedItems.Add(selectedTag);
       }
    }
}