1

我正在开发一个 WPF 应用程序。根据要求,我的主页中有一个动态数据网格(用户可以选择要显示的列)。目前我正在使用 MVVM 设计模式。我的数据网格中的一列是“行号”(1,2,3,…250)。根据新要求,我需要在此主屏幕中添加一个文本框。一旦用户在此测试框中输入行号并单击“ENTER”键,我需要选择/聚焦数据网格中的相应行。我怎样才能从 Vie 模型中实现这个?

  1. 如何从视图模型中选择数据网格行。?

  2. 如何将滚动位置移动到该特定数据行?

任何帮助都是不言而喻的。

谢谢

4

1 回答 1

1

首先,集合的每个项目都应该有一个布尔属性来指示它是否被选中(我们称之为它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,其他一切都应注意。

于 2013-05-07T05:12:17.967 回答