Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.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
WPF数据网格集selectedItem_Wpf_Datagrid_Selecteditem - Fatal编程技术网

WPF数据网格集selectedItem

WPF数据网格集selectedItem,wpf,datagrid,selecteditem,Wpf,Datagrid,Selecteditem,我的问题是我想设置selectedItem(在数据网格中标记一行)。 我已经搜索了很多,实际上我希望有一个更好的解决方案,而不是遍历datagrid 我的建议是: 我有一个值为3的数字,我希望标记数字为3的datagrid行。。 我试过这个: DataGridRow row = (DataGridRow)gridErrors.ItemContainerGenerator.ContainerFromItem(gridErrors.SelectedItem); if (row !=

我的问题是我想设置selectedItem(在数据网格中标记一行)。 我已经搜索了很多,实际上我希望有一个更好的解决方案,而不是遍历datagrid

我的建议是:

我有一个值为3的数字,我希望标记数字为3的datagrid行。。 我试过这个:

DataGridRow row = (DataGridRow)gridErrors.ItemContainerGenerator.ContainerFromItem(gridErrors.SelectedItem);

        if (row != null)
        {
            ErrorInfo info = row.Item as ErrorInfo;

            var blubb = from c in this.objectsToSync
                        where c.Number == info.Number
                        select c;

            if (blubb != null)
            {
                gridCsvContent.SelectedItem = blubb;
                gridCsvContent.ScrollIntoView(blubb);
                DataGridRow rowContent = (DataGridRow)gridCsvContent.ItemContainerGenerator.ContainerFromItem(gridCsvContent.SelectedItem);
                rowContent.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
            }
        }    
首先,我提取我的数字所在的DataGridRow(值3) 然后我有一个linq查询,在那里我得到了数字为3的对象。 然后我想设置selectedItem,但之后它为空

是否有一种解决方案,我不必迭代数据网格。。? 有没有办法直接设置所选项目

提前非常感谢!
kr

不幸的是,您必须迭代集合以匹配单元格中的现有数据

如果您使用的是MVVM模式,则可以将此逻辑移动到
ViewModel
并直接处理底层数据。您可以创建将SelectedItem绑定到的依赖项属性。我认为您仍然需要代码隐藏中的事件来调用
ScrollIntoView