WPF DataGrid: как программно изменить выбранную строку? - PullRequest
1 голос
/ 01 октября 2010

Как мне изменить выбранную строку программно?

Я изменяю изменение выбранного элемента и ячейки, но не могу понять, как выделить весь ряд.

Примечание. Подсветка работает нормально, когда пользователь выбирает строку мышью или клавиатурой.

Ответы [ 2 ]

0 голосов
/ 03 марта 2011

Кажется, что SelectedItem выбирается только после события 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 привязан к коллекции, в которой есть какие-либо элементы.

0 голосов
/ 01 октября 2010

взгляните на эту страницу. Вам нужно и SelectionUnit, и SelectionMode, чтобы указать способ выбора в DataGrid.

С SelectionUnit = FullRow и SelectionMode = Single пользователь может выбрать только одну строку за раз.

edit: после попытки, похоже, что DataGrid.SelectedItem[i] выберет всю строку. К сожалению, похоже, что вам придется вручную устанавливать выделение в обработчике событий, который необходимо создать для свойства SelectionChanged DataGrid.

...