Эран Бецалель написал небольшой класс расширения для DataGrid, все говорят, что это здорово.
Но я не могу понять, какой язык он использует и как заставить его работать в Silverlight C # .net 3.5.
Вот класс, который он написал 12 месяцев назад:
public final class DataGridEx extends DataGrid{
public var maintainScrollAfterDataBind:Boolean = true;
public function DataGridEx()
{
super();
}
override public function set dataProvider(value:Object):void {
var lastVerticalScrollPosition:int = this.verticalScrollPosition;
var lastHorizontalScrollPosition:int = this.horizontalScrollPosition;
super.dataProvider = value;
if(maintainScrollAfterDataBind) {
this.verticalScrollPosition = lastVerticalScrollPosition;
this.horizontalScrollPosition = lastHorizontalScrollPosition;
}
}
Мне кажется, что он переопределил свойство, которое, как я вижу, невозможно в .net.
Спасибо за все ваши замечания ниже, я добавлю некоторые дополнительные детали (очень жаль за задержку с возвращением к этому, но я лежал в постели в течение 4 дней, галлюцинируя лихорадкой!).
У меня есть Silverlight Datagrid, который привязан к данным вызова службы WCF, сетка имеет две кнопки в каждой строке сетки, одна для открытия станции, другая для закрытия станции, остальные данные в строке информация о пользователе.
Когда пользователь нажимает кнопку «Открыть» или «Закрыть» в определенной строке, я обновляю сводный раздел на странице вверху, а также обновляю данные в базе данных; в этот момент сетка нуждается в обновлении, чтобы пользователь не терял фокус на том, на какую строку он щелкнул.
Проблема в том, что при обновлении первая строка появляется в верхней части видимой области, я очень надеюсь, что есть способ запомнить положение строки и переместить полосу прокрутки с помощью кода?
Есть вероятность, что я смогу обновить данные непосредственно в сетке, но это сложно, потому что, хотя он открыт / закрыт, в нем есть другая логика, которая превращает его в решение с 4 состояниями. Однако я мог бы переместить эту логику из сервиса в silverlight, если бы это был мой единственный вариант, хотя это не было бы предпочтительным.
Действительно очень ценю вашу помощь в этом.
Рич.