c# - 无法将类型 'System.String' 的对象强制转换为 "..Controls.SurfaceListBoxItem' 异常

标签 c# wpf pixelsense

我想做的就是将列表框中的每个值与选定的值进行比较,然后将匹配索引设置为选定的。 由于某种原因,标题中出现了异常(exception)情况。我不明白为什么。 代码:

            foreach(SurfaceListBoxItem n in BackgroundsList.Items)
        {
            if (n.ToString() == current) BackgroundsList.SelectedItem = n;
        }

谢谢!

最佳答案

在WPF中,List.Items不一定包含ListBoxItem的集合,而是只包含数据值,并且数据的Item Container是派生的,要设置值,只需将current设置为所选项目即可。

无需迭代,只需执行以下操作即可,

BackgroundsList.SelectedItem = current;

关于c# - 无法将类型 'System.String' 的对象强制转换为 "..Controls.SurfaceListBoxItem' 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3308053/

相关文章:

c# - 使用变量或参数指定 ALTER SEQUENCE 的重启值

c# - Dictionary<string, object> 返回 long 而不是 int

c# - 写入文件时 FileStream 与 System.IO.File.WriteAllText

wpf - 如何获得 ContentPresenter 的 child ?

c# - 在 C# (wpf) 中捕获 Windows 键

c# - 当对象放在 SurfaceListBox 和 ScatterView 上时获取 SurfaceListBoxItem 和 ScatterViewItem

wpf - Surface 中的交互式 3D 对象

c# - 处理点击ListView的子项

pixelsense - 桌面的多点触控界面有真正的值(value)吗?

c# - WPF 如何在代码中将网格行和列大小重置为 "*"