2010-10-01 48 views
1

如何以编程方式更改所选行?WPF DataGrid:如何以编程方式更改所选行?

我改变选择的项目和单元格,但我想不出如何让整个行突出显示。

注意:当用户用鼠标或键盘选择一行时,突出显示可以正常工作。

+0

此解决方案是否工作? http://stackoverflow.com/questions/1976087/wpf-datagrid-set-selected-row – Ragepotato 2010-10-01 19:40:34

+0

没有。我想知道它是否与样式表有关。 – 2010-10-01 20:51:18

+0

更具体地说,您发送的链接会更改所选单元格,但不会更改突出显示的行。 – 2010-10-01 20:59:17

回答

0

看看this页面。您需要SelectionUnitSelectionMode指定如何在DataGrid中完成选择。

使用SelectionUnit = FullRowSelectionMode = Single,用户一次只能选择一行。

编辑:尝试后,它看起来好像DataGrid.SelectedItem[i]将选择一整行。不幸的是,它看起来好像您将不得不手动设置事件处理程序中的突出显示,您必须为DataGrid的SelectionChanged属性创建该突出显示。

+0

我已经有了这些设置,当用户用鼠标或键盘选择一行时,突出显示可以正常工作。我需要知道如何使用代码更改选择。 – 2010-10-01 20:44:32

0

看起来,SelectedItem只在containg元素的Loaded事件(例如UserControl)后被拾取。这似乎工作:

public partial class UserControlClass 
{ 
    public UserControlClass() 
    { 
     InitializeComponent(); 

     Loaded += UserControlClass_Loaded; 
    } 

    void UserControlClass_Loaded(object sender, System.Windows.RoutedEventArgs e) 
    { 
     if (YourItemsControl.Items.Count > 0) 
      YourItemsControl.SelectedItem = YourItemsControl.Items[0]; 
    } 
} 

上面的代码会显示所选择的第一个项目,如果YourItemsControl绑定到在任何项目的集合。

相关问题