我正在开发一个 WPF 应用程序。根据要求,我的主页中有一个动态数据网格(用户可以选择要显示的列)。目前我正在使用 MVVM 设计模式。我的数据网格中的一列是“行号”(1,2,3,…250)。根据新要求,我需要在此主屏幕中添加一个文本框。一旦用户在此测试框中输入行号并单击“ENTER”键,我需要选择/聚焦数据网格中的相应行。我怎样才能从 Vie 模型中实现这个?
如何从视图模型中选择数据网格行。?
如何将滚动位置移动到该特定数据行?
任何帮助都是不言而喻的。
谢谢
首先,集合的每个项目都应该有一个布尔属性来指示它是否被选中(我们称之为它Selected
)。然后在数据网格中:
<DataGrid>
<DataGrid.ItemContainerStyle>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="IsSelected" Value="{Binding Selected, Mode=TwoWay}"/>
</Style>
<DataGrid.ItemContainerStyle>
........
</DataGrid>
[当然所有属性都应该有更改通知]
关于滚动,我会选择这个答案,这个问题是有针对性ListBox
的,但答案是ItemsControl
一般的,所以它应该适用于DataGrid
.
因此,当用户输入行号时,您会找到相关项目,将其Selected
属性设置为true
,其他一切都应注意。