Как найти поле в сетке данных Silverlight 3? - PullRequest
1 голос
/ 11 января 2010

Мне нужно найти ячейку / столбец в DataGrid Silverlight 3, чтобы я мог вызвать UpdateSource для него. Как я могу это сделать?

Вот почему, если вам интересно:

У меня есть DataGrid в приложении Silverlight 3, который отображает объекты, которые украшены атрибутами DataAnnotations, такими как [Обязательные], для целей проверки. Я заполняю DataGrid из импортированного файла CSV. Импортированные строки будут недействительными, потому что CSV не содержит все обязательные поля.

Проверка работает, если пользователь редактирует поля в сетке данных или когда я вызываю submit (это приложение служб WCF RIA). Что я хотел бы сделать, это запустить проверку, как только сетка данных будет загружена. Из большого количества чтения кажется, что нет встроенного способа сделать это.

Я рассчитывал, что если я найду поле в первой строке в сетке данных и вызову UpdateSource (), я вызову ошибку проверки. Как я могу перейти к определенной вручную сетке данных?

Ответы [ 3 ]

1 голос
/ 21 января 2010

DataGridFieldName.Items предоставляет вам доступ к объектам, привязанным к DataGrid. Вы можете запустить проверку этого элемента, вручную вызвав Validator.ValidateObject.

var firstRowOfDataGrid = dataGrid.Items [0];
ValidationContext validationContext = новый ValidationContext (firstRowOfDataGrid, null, null);
Validator.ValidateObject (this, validationContext);

Я не знаю, решает ли это ваш сценарий, но стоит попробовать.

Валидатор на MSDN
http://msdn.microsoft.com/en-us/library/dd382100(VS.100).aspx

0 голосов
/ 23 января 2010
0 голосов
/ 11 января 2010

Вы пытались использовать FindName ("Имя")

http://msdn.microsoft.com/en-us/library/bb979952%28VS.95%29.aspx

...