Можно ли получить доступ к столбцу Silverlight DataGrid по имени, а не по индексу столбца? - PullRequest
6 голосов
/ 09 февраля 2009

Кто-нибудь знает, возможно ли получить доступ к столбцу DataGrid, используя его x: name (как определено в xaml) из кода позади?

Я знаю, что могу использовать следующий код:

myDataGridList.Columns[0].Header = "Some Data";

.. но я бы предпочел использовать что-то подобное, если это возможно:

myDataGridList.Columns["ColumnName"].Header = "Some Data";

Заранее спасибо.

1 Ответ

13 голосов
/ 10 февраля 2009

Вы можете расширить ObservableCollection с помощью некоторого Linq или цикла foreach для линейного поиска по столбцам.

public static class MyExtensions
{
    public static DataGridColumn GetByName(this ObservableCollection<DataGridColumn> col, string name)
    {
        return col.SingleOrDefault(p =>
            (string)p.GetValue(FrameworkElement.NameProperty) == name
        );
    }
}

Затем вы можете вызвать это вместо свойства Columns:

myGrid.Columns.GetByName("theName");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...