【问题标题】:Listview Deselect C# MetroListview 取消选择 C# Metro
【发布时间】:2012-07-29 04:43:32
【问题描述】:

如何在 C# Metro 应用程序中取消选择列表视图的所有值?我通过对象浏览器和在线搜索,并没有找到任何东西。提前致谢!

【问题讨论】:

    标签: c# listview microsoft-metro


    【解决方案1】:

    您是否尝试过清除SelectedItems 列表?我认为这就是通常的做法。

    listView.SelectedItems.Clear();
    

    编辑: 为了澄清一些事情,这里的示例 WPF 应用程序可以毫无问题地清除所选项目。也许Metro 应用程序的工作方式有些不同,但我认为逻辑应该是相同的。

    <StackPanel>
        <ListView Name="listView">
            <ListViewItem>Item 1</ListViewItem>
            <ListViewItem>Item 2</ListViewItem>
            <ListViewItem>Item 3</ListViewItem>
            <ListViewItem>Item 4</ListViewItem>
        </ListView>
        <Button Click="Button_Click"
                Content="Clear selection" />
    </StackPanel>
    

    下面是代码:

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            listView.SelectedItems.Clear();
        }
    

    按钮单击列表项被正确取消选择并且没有抛出异常。

    【讨论】:

    • 嗯我试过这个,当应用程序到达这一行时,它会导致程序崩溃。
    • 具体来说,我说:“在 mscorlib.dll 中发生了“System.Exception”类型的异常,但未在用户代码中处理附加信息:灾难性故障(来自 HRESULT 的异常:0x8000FFFF (E_UNEXPECTED))如果有这个异常的处理程序,程序可以安全地继续。”
    • 您的建议也是删除列表视图中的项目,而不是简单地取消选择它们。
    • 我添加了用于测试我的解决方案的示例代码并且一切正常(但请注意这是正常的WPF 应用程序,但我假设在Metro 中一切正常)。请在您的问题中发布一些示例代码和所有异常详细信息,以便我们为您提供帮助。
    • 您说得对,它在 WPF 中正常工作,但在 Metro 中,清除所有选定项目似乎会从列表视图中删除项目。感谢您的帮助,但我找到了另一种做我想做的事情的方法。我只有一个默认选择“无”的列表项。基本上我正在制作一个选项列表,并希望用户选择一个。再次感谢。
    【解决方案2】:

    我找到了另一种做我想做的事的方法。我只有一个默认选择“无”的列表项。当我选择这个项目时,焦点会从之前选择的另一个项目上移开。 Pako 提供的解决方案可以在传统的桌面/WPF 环境中工作,但显然不是 Metro 环境。感谢您的帮助。

    【讨论】:

    • 我遇到了同样的问题,我的解决方案是:list.SelectedIndex = -1;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 2013-07-19
    • 2011-03-17
    相关资源
    最近更新 更多