Установить выбранный элемент таблицы данных XAM программно в соответствии с его именем - PullRequest
2 голосов
/ 19 сентября 2011

Что-то вроде этого.

private void SearchResult(string nameOfBean)
{
    foreach (Record VARIABLE in mbeanDataGrid.Records)
    {
        if (VARIABLE.ToString().Contains(nameOfBean))
        {
            ((VARIABLE as DataRecord).DataItem as Record).IsSelected = true;
        }
    }
}

Однако я знаю, что этот синтаксис неправильный, и я ищу несколько советов!Довольно много, чтобы выбрать элемент (как если бы вы нажали на него) с помощью кода.По названию.

1 Ответ

6 голосов
/ 30 ноября 2011

вы можете выбрать записи со следующим кодом (если вы хотите выбрать более одной записи)

private void ShowSearchResult(string searchStr)
{
    var recordsToSelect = new List<Record>();
    foreach (Record rec in xamGrid.Records) {
      var yourData = rec is DataRecord ? ((DataRecord)rec).DataItem as YourDataClass : null;
      if (yourData != null && yourData.MatchWithSearchStr(searchStr)) {
        recordsToSelect.Add(rec);
      }
    }
    xamGrid.SelectedItems.Records.Clear();
    // you need linq -> .ToArray()
    xamGrid.SelectedItems.Records.AddRange(recordsToSelect.ToArray(), false, true);
}

или, если вы хотите активировать и выбрать запись, сделайте это

private void ShowSearchResult(string searchStr)
{
    foreach (Record rec in xamGrid.Records) {
      var yourData = rec is DataRecord ? ((DataRecord)rec).DataItem as YourDataClass : null;
      if (yourData != null && yourData.MatchWithSearchStr(searchStr)) {
        xamGrid.ActiveRecord = rec;
        // don't know if you really need this 
        xamGrid.ActiveRecord.IsSelected = true;
        break;
      }
    }
}

надеюсь, это поможет

...