Количество данных строк radgridview в WPFC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Количество данных строк radgridview в WPF

Сообщение Anonymous »

Задача находится в WPF. В этом приложении у меня есть radgridview, когда я нажимаю кнопку «Развернуть строку», и данные загружаются. Когда пользователь нажимает на строку данных, он перетаскивает данные строки и помещает другую строку. Текущие данные о количестве строк обновляются мгновенно, но обновленное количество строк не обновляется мгновенно. Пользователь предоставил код события изменения выбора radgridview. Есть ли способ мгновенно обновить radgridview?
Изображение

Выше представлен radgridview в WPF. Например, когда я нажимаю на значение строки 29 и добавляю значение строки 20. Строка 29 будет уменьшена до 28, а строка 20 не обновится до 21. Это проблема, с которой я столкнулся. Поскольку код размещается как событие изменения выбора строки, поэтому, когда я расширяю строку, она обновляется. Но пользователю необходимо мгновенно обновиться.

xaml.cs
///
/// Increase / Decrease the count during change in grid.
///
private void Grid1_SelectionChanged(object sender, SelectionChangeEventArgs e)
{
var gridView = sender as RadGridView;

var sampleViewModel = gridView.DataContext as SampleInformationBase;
var masterViewModel = DataContext as SampleMasterViewModel;

if (masterViewModel != null && sampleViewModel != null)
gridView.ParentRow.Cells[3].Content = sampleViewModel.Count;

}

Те же функции должны выполняться, но обе строки должны обновляться мгновенно. Но выбор GridViewChanged означает, что он будет обновлен во время выбора строки. Но я хочу обновляться при перетаскивании.
StudentMasterViewModelBase
///
/// Handles a that was dragged and dropped onto a
///
///
protected virtual void DropStudent(object pParameter)
{

if (pParameter is DragDropParameter)
{
var ddParameter = (pParameter as DragDropParameter);
var recipientRoute = ddParameter.DropRecipient as RouteInformationBase;
//int receipeRoutecount = recipientRoute.CustomerCount +1;

if (recipientRoute != null)
{
RecipientRoute = recipientRoute.Route;

var draggedItem = ddParameter.DraggedItem as StudentBase;

draggedItem.Route = RecipientRoute;

if (!recipientRoute.RouteStudents.Contains(draggedItem))
recipientRoute.RouteStudents.Add(draggedItem);

}
}
AutoNotifyPropertyChanged();

}

///
/// Handles when a is added or removed from
///
///
///
private void OnRouteStudentsChanged(object sender, NotifyCollectionChangedEventArgs e)
{

if (e.Action == NotifyCollectionChangedAction.Add && e.NewItems != null)
{
foreach (StudentBase RouteStudent in e.NewItems)
{
// Subscribe to data object's EditEnded event
RouteStudent.EditEnded += OnRouteStudentEdited;

RouteStudent.BeginEdit();

RouteStudent.EndEdit();
}
}

if (e.Action == NotifyCollectionChangedAction.Remove && e.OldItems != null)
{
foreach (StudentBase RouteStudent in e.OldItems)
{
// Unsubscribe from the data object's EditEnded event
RouteStudent.EditEnded -= OnRouteStudentEdited;
}
}
AutoNotifyPropertyChanged();

}

///
/// Handles when a has been edited
///
///
private void OnRouteStudentEdited(object sender)
{
if (sender is StudentBase StudentBase)
{
if (!string.IsNullOrWhiteSpace(StudentBase.Custno) && !string.IsNullOrWhiteSpace(RecipientRoute))
{
UpdateRouteChanges(StudentBase.Custno, RecipientRoute);
OnRouteStudentSaved(sender as StudentBase);
}
}
AutoNotifyPropertyChanged();
}

///
/// Ensures the recently-changed exists in only one
///
/// Recently-changed
private void OnRouteStudentSaved(object sender)
{
var RouteStudent = sender as StudentBase;

if (RouteStudent != null && RouteData.Any())
{
var routeInformationCopy = new ObservableCollection(RouteData);

foreach (RouteInformationBase route in routeInformationCopy)
{
if (route.Route != RouteStudent.Route)
{
var match = route.RouteStudents.Where(x => x.Custno == RouteStudent.Custno).FirstOrDefault();

if (match != null)
{
var routeData = RouteData.Where(x => x.Route == route.Route).FirstOrDefault();
routeData.RouteStudents.Remove(match);
}
}
}
}
AutoNotifyPropertyChanged();
}


Подробнее здесь: https://stackoverflow.com/questions/782 ... unt-in-wpf
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Telerik Radgridview Winforms Изменить ячейку/цвет фона строк
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Telerik RadGridView — настраиваемые элементы управления фильтрацией для списка моделей просмотра.
    Anonymous » » в форуме C#
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Ошибка фильтрации элемента управления Telerik RadGridView
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Как получить элемент RadCheckBox в RadGridView и переключить флажок
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как получить элемент RadCheckBox в RadGridView и переключить флажок
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»